2014-06-12 52 views
1

假設我有一個名爲DevilDog的班級。這個類DevilDog包含除了動畫和圖形以外所有關於惡魔狗的信息。將影片剪輯集成到DevilDog類中的最佳方法是什麼?將班級的圖形鏈接到班級本身

一個例子會非常有幫助。我不確定我是否會以某種方式將影片剪輯存儲在與DevilDog相同的文件夾中,或使用中央FLASH。文件導出動作腳本的動畫片段。哦,DevilDog將被包含在一個單獨的文件夾中,而不是fla。文件

Thnx!

回答

1

有多種方式可以這樣做,並且沒有「最佳」做法。這一切都取決於你創建這些文件的方式。

常見的用法是DevilDog類接受一個「資產」參數並將圖形對象保存在成員變量中。這意味着邏輯與圖形分離,並且可以使用具有不同圖形的類,只是在構建時將它們作爲參數傳遞。

這樣你就可以把你所有的東西事先 - 負荷資產,操縱他們,你希望每一個方式,如果需要切換方法等的示例代碼將類似於此:

public class DevilDog { 
    private var _graphic:Sprite; // could be MovieClip, Bitmap, whatever you have 

    public function DevilDog(graphic:Sprite) { 
     _graphic = graphic; 
    } 

    // OR 
    public function setGraphic(graphic:Sprite):void { 
     _graphic = graphic; 
    } 
} 

常見實踐是你設置圖形只是一次(可能在構造函數中)。這樣做是因爲不會在有圖形實例化並且一切正常的問題中運行,並且某處從某處設置了一個新圖形並將所有內容混淆。

所以基本上這是最常用的做法,希望你能理解爲什麼。還有其他的方法,但這個作品幾乎總是:)

+0

我認爲setter方法更好。能夠在運行時切換皮膚非常強大。這意味着你可以爲角色設置一個更通用的基類(假設它們共享行爲),併爲它們提供不同的外觀。 –

+0

那麼這就是爲什麼我說這是一個普遍的做法 - 所有那些不真正知道如何去做的人。如果你掌握依賴注入並正確處理它 - 這是一個好方法!我只是不希望他在運行時處理新圖形而煩惱太多。反正好點! :) –

+0

thnx你的迴應,夥計們!很有幫助 :) – theseal53