我有一个使用SWC视觉符号的动作项目。actionscript项目中的类如何覆盖Flash CS3 SWC文件中的类?
我有一个CheckoutButton
它有以下类与它关联(编译到SWC在Flash CS3中)。
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项目。
我使用编译SWC ActionScript项目中,我已经运行了以下方案:
1)我删除CheckoutButton.as
从classpath我的ActionScript项目:
var x:CheckoutButton = new CheckoutButton();
addChild(x);
我得到来自我的Flash CS3文件的视觉符号的一个实例。当我点击它时,alpha就达到50%。这又是如我所料。
2)我跑在classpath这个代码CheckoutButton.as
我的ActionScript项目:
var x:CheckoutButton = new CheckoutButton();
addChild(x);
没有任何反应都没有。这完全如我所料 - 因为我基本上重写了SWC中的类定义,其中没有任何可视功能的SimpleButton
。
现在我也有我的Flash文件中的时间轴动画CheckoutAnimation
这恰好包含CheckoutButton
符号的一个实例。
3)我从classpath DELETING CheckoutButton.as
后运行ActionScript项目:
var x:CheckoutAnimation = new CheckoutAnimation();
addChild(x);
动画符号拿起类定义(如最初编译成SWC),当我点击它符号的alpha值达到50%。这完全如预期。
4)我CheckoutButton.as
还是在类路径中运行ActionScript项目:
var x:CheckoutAnimation = new CheckoutAnimation();
addChild(x);
结账符号出现在动画,但点击它什么也不做!
为什么这样!我不明白!我不明白为什么我没有得到与上面(2)中相同的结果,我绝对不明白为什么没有代码正在执行。这里的冲突是什么?
感谢横向思维 - 不幸的是它不是这次的罪魁祸首。我试图主要了解行为应该是什么 - 这个例子是对这个问题的简化 – 2011-05-08 09:30:18