我有一个动作脚本项目,它使用来自 SWC 的视觉符号。
我有一个CheckoutButton
与它关联的以下类(编译到 Flash CS3 中的 SWC)。
public class CheckoutButton extends SimpleButton {
public function CheckoutButton () {
this.addEventListener(MouseEvent.CLICK, checkoutClicked);
}
// click on the button and the alpha will go to 50%
public function checkoutClicked(e:MouseEvent):void {
this.alpha = .5; // take user to checkout
}
public function dispose ():void {
}
}
重要提示:该CheckoutButton.as
文件位于使用 SWC 的 actionscript 项目的类路径中。
我在 actionscript 项目中使用已编译的 SWC,并且运行了以下场景:
CheckoutButton.as
1)我从我的actionscript项目的类路径中删除:
var x:CheckoutButton = new CheckoutButton();
addChild(x);
我从我的 Flash CS3 文件中获得了一个视觉符号的实例。当我点击它时,它的 alpha 变为 50%。这又完全符合我的预期。
CheckoutButton.as
2) 我在我的 actionscript 项目的类路径中运行此代码:
var x:CheckoutButton = new CheckoutButton();
addChild(x);
什么都没有发生。这正是我所期望的——因为我基本上用一个SimpleButton
没有任何视觉功能的 SWC 覆盖了类定义。
现在,我的 Flash 文件中还有一个时间线动画CheckoutAnimation
,它恰好包含该元件的一个实例CheckoutButton
。
3)我从类路径中删除后运行actionscript项目CheckoutButton.as
:
var x:CheckoutAnimation = new CheckoutAnimation();
addChild(x);
动画中的符号获取类定义(最初编译到 SWC 中),当我单击它时,符号的 alpha 变为 50%。这完全符合预期。
CheckoutButton.as
4)我仍然在类路径中运行actionscript项目:
var x:CheckoutAnimation = new CheckoutAnimation();
addChild(x);
结帐符号出现在动画中,但单击它没有任何反应!
为什么是这样!我不明白!我不明白为什么我没有得到与上面(2)相同的结果,我绝对不明白为什么没有代码正在执行。这里有什么冲突?