【发布时间】:2010-09-20 06:53:06
【问题描述】:
我是 ActionScript 2 的长期用户,现在开始使用 ActionScript 3。我缺少的一件事是复制 AS2 的 MovieClip.onReleaseOutside 功能的简单方法。几乎总是有必要实现这个事件,否则你会得到一些有趣的错误,比如 flash 认为你的鼠标在真正启动时已经关闭。
根据AS2 to AS3 Migration Guide,我应该为此使用flash.display.InteractiveObject.setCapture(),但据我所知它并不存在。我猜这个文件已经过时或不正确。我在网上找到了一些关于如何复制此功能的帖子,但它们都有自己的问题:
必须有更简单的方法,不要告诉我 Adobe 在重写 Actionscript 时忘记了这一点?
示例 AS2 代码:
// Assume myMC is a simple square or something on the stage
myMC.onPress = function() {
this._rotation = 45;
}
myMC.onRelease = myMC.onReleaseOutside = function() {
this._rotation = 0;
}
如果没有 onReleaseOutside 处理程序,如果您按下方块,将鼠标拖到方块外面,然后松开鼠标,那么方块不会停止旋转,并且看起来像是被卡住了。
【问题讨论】:
-
我从 AS2 迁移到 Flex 3,所以没有遇到这个问题。因此,尽管我无法提供答案,但请为引起我对这个问题的注意而投赞成票。干杯。
-
如果你在舞台的空白区域释放就可以了。如果你在你的舞台上释放了一个未知的精灵怎么办?或者如果有多个按钮需要检查 releaseOutside 怎么办?
标签: flash actionscript-3 migration actionscript-2