簡體   English   中英

AS3-從類向MovieClip容器添加對象

[英]AS3 - Adding an object to a MovieClip Container from a class

我對在AS3中使用類進行添加有點陌生,到目前為止,我只是在影片的frame1上進行了所有操作。 我認為我最終應該學習類,所以在這里走了:)當我將對象添加到屏幕上時,我喜歡將它們組合在一起放在容器對象中以備后用。 因此,我要建立一個Hex董事會,我正在嘗試將它們放入名為hexContainer的MovieClip中,並將其放置在舞台上。 現在,如果我像往常一樣執行此代碼,則只需執行hexContainer.addChild(tempHex)。 但是,這將引發錯誤1120。

我的課程代碼如下:

package  
{
import flash.display.MovieClip
import Hex
import flash.display.Stage

public class Boards extends Hex
{
    public function buildBoardOne()
    {
        for(var i:int = 1; i <= 5; i++)
        {
            var tempHex:Hex = new Hex();
            tempHex.x = 100;
            tempHex.y = 100;
            hexContainer.addChild(tempHex);
        }
    }

}

}

我一開始只是將這些添加到舞台上,然后在執行時遇到錯誤,這就是為什么import語句在那里的原因。 我已經在Google上檢查過,以找出原因,這就是他們所說的。

現在,當我將它們添加到舞台上時,效果很好。 我可以得到我的六角形並操縱它們,我們參加了聚會,這是一個美好的時光。 現在,我試圖將它們放入容器影片剪輯中,他們對我很生氣,但我無法安撫他們:p

大家能給我的任何幫助將不勝感激。

編輯代碼以測試okayGraphics的建議:

package  
{
    import flash.display.MovieClip
    import Hex
    import flash.display.Stage

    public class Boards extends Hex
    {
        var hexContainer:MovieClip = new MovieClip();
        stage.addChild(hexContainer);

        public function buildBoardOne()
        {
            for(var i:int = 1; i <= 5; i++)
            {
                var tempHex:Hex = new Hex();
                tempHex.x = 100;
                tempHex.y = 100;
                stage.addChild(tempHex);
            }
        }

    }

}

由於此程序包中未定義hexContainer,因此出現1120錯誤。 您要么(1)需要在嘗試向其添加子級之前聲明var hexContainer = [your_reference_here]

要么

(2)您可以將hexes作為子級添加到Boards類中,然后將其添加到hexContainer中。 而不是hexContainer.addChild(TempHex); 只是把addChild(TempHex);

也有很多其他方法可以做到這一點,但我認為這兩種方法是最直接的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM