2011-05-06 33 views
0

我有一個使用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)中相同的結果,我絕對不明白爲什麼沒有代碼正在執行。這裏的衝突是什麼?

回答

0

這是一個遠射,但基於您提供的一小段代碼,它是唯一想到的事情。在您的示例中,您已將x添加到顯示列表中4次。顯示列表上可能有多個此符號的實例堆疊在一起。當你設置其中任何一個或全部的alpha時,你不會注意到一個變化,因爲你看到它下面的其他符號。

我明白你的代碼在這裏可能只是一個例子,但如果你已經將x添加到顯示列表中4次,那就是你的問題。我之前完成了這個任務,直到你開始玩alpha或開始移動物體時,它纔會被忽視。

+0

感謝橫向思維 - 不幸的是它不是這次的罪魁禍首。我試圖主要了解行爲應該是什麼 - 這個例子是對這個問題的簡化 – 2011-05-08 09:30:18

相關問題