2010-06-07 51 views
0

在Flash中,如果我創建一個自定義影片剪輯,並編譯成一個SWC,我可以(通過鏈接到名爲.swc)用它的.fla文件..UIComponent在SWC

var mcInstance = new CustomMovieClip(); 
addChild(mcInstance); 

自定義movieClip圖層上的所有圖形排列都會保留。

如果我繼承UIComponent並編譯成SWC,我可以使用自定義類在我的FLA文件,但新的情況似乎並沒有構建安排在層的孩子。

我知道,做一個自定義組件的正確方法是有兩個框架,首先要指定邊框,資產第二幀,並在第1幀的第一個圖形是在運行時刪除。但我並沒有真正想要創建一個可重用的組件 - 我只想使用UIComponent類(它似乎對Sprite有一些很好的擴展)。

因爲我真的想在組件內部找到一些手工定位的圖層,我想我可以將邊界框作爲第一幀的第一個元素(知道它將被刪除),但是我將其他任何項目放在第1幀上被保留 - 按鈕,圖像,線條等

這可能嗎?

回答

0

所以我想出來..我莫名其妙地被鏈接到的原始文件。如,而不是在對名爲.swc象徵。

:我有一個符號在一個.fla組合物

我從而將其重命名(默認的實例的MovieClip)...

屬性:分類: 「CustomMovieClass」

注意:我還沒有創建.as文件。我收到了一點小小的警告 - 「在類路徑中找不到這個類的定義,所以在導出時會自動在SWF文件中生成一個。」

我出口的動畫片段Assets.swc。

- 休息一下,然後

創建新TestingAssets.fla文件, 「Assets.swc」 添加到庫路徑。從這個項目的一些代碼...

var ob1:CustomMovieClass = new CustomMovieClass(); 
addChild(ob1); 

Yay!它會彈回生命,我在CustomMovieClass時間表中所做的所有動畫都已合併。

- 另一種休息,然後

回到原來的項目,創建CustomMovieClass.as

package { 
    import flash.display.MovieClip; 
    public class CustomMovieClass extends MovieClip { 
     // Simplest custom class definition 
    } 
} 

和再出口的資產。swc

回到TestingAssets.fla,編譯並運行 - Nothing(編譯和編譯好但沒有動畫)。

所以我把一個錯字在CustomMovieClass.as並再次建立,記住,我是反對和名爲.swc鏈接我發誓給你,這CustomMovieClass.as文件不在類路徑或庫路徑...和「編譯器錯誤」。所以不知何故,它在原始的src中鏈接,而不是編譯成swc版本。

感謝收聽。

0

是而不是UIComponent Flex的?我認爲這不會在FLA內部發揮作用。

+0

不,它在Flash中正常工作。 Flash帶有fl.display.UIComponent的許多子類。您正在考慮mx.core.UIComponent – hooleyhoop 2010-06-07 21:36:13

+0

感謝您的貢獻 – hooleyhoop 2010-06-08 06:59:15