簡體   English   中英

使用AS3將對象加載到舞台

[英]Loading object to stage with AS3

我是AS3的新手,所以請原諒我提出的問題可能很容易解決。

我正在嘗試使用外部AS3類將圖像加載到舞台上。 我不確定這是否是最好的方法,但是我從一個教程開始,因此一直遵循。

我的對象(電影剪輯)的類為“ Mountain”,稱為“ Mountain_mc”。

我的外部AS3類文件稱為“ Mountain”,這是代碼(它與我要加載圖像到舞台上的Flash文件存儲在項目文件夾的同一級別)-

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

    public class Mountain extends MovieClip
    {
        public function Mountain()
        {

            var myMountain:Mountain = new Mountain();
            stage.addChild(myMountain);
            myMountain.x = stage.stageWidth/2;
            myMountain.y = stage.stageHeight/2;
            trace ("I am a mountain");

        }
    }       
}

我沒有收到任何錯誤消息,但是trace命令無法正常工作,並且我的圖像沒有出現在舞台上。 任何幫助將不勝感激。 我花了太長時間試圖解決這個問題,但我卻一無所獲。

謝謝!

對於初學者,您應該嘗試閱讀有關類的內容的更多信息。 您的代碼中有幾個錯誤:

  1. 您實際上在那里正在執行堆棧溢出。 由於這個站點的名稱,這很有趣。 :)

    您正在遞歸定義與父代相同類型的變量。 創建第一個myMountain時,它將調用它的構造函數。 在其中,它將創建一個變量myMountain,該變量也將稱為其構造函數。 等等。

    因此,在var myMountain:Mountain = new Mountain();下沒有任何代碼行var myMountain:Mountain = new Mountain(); 會出現。 如果需要,可以嘗試將trace移到該行之前。 如果您進行編譯,將會得到無數的“我是一座山”。

  2. 你不能調用stage ,如果你的類不添加到舞台。
  3. 類的實例無法將自身添加到舞台。
  4. 您必須將代碼分為類中的代碼和第一個關鍵幀中的代碼。

考慮到您有一部空電影,其庫符號為“ mountain_mc”,它指向名為Mountain的類,因此電影文件夾中必須有一個外部文件Mountain.as。 然后,您有兩種類型的代碼

在電影的第一幀上,打開“動作”面板,然后輸入:

var myMountain:Mountain = new Mountain();
this.addChild(myMountain);
myMountain.x = stage.stageWidth/2;
myMountain.y = stage.stageHeight/2;

在您的外部文件Mountain.as中,您具有:

package {
    import flash.display.MovieClip;
    import flash.display.Stage;
    public class Mountain extends MovieClip
    {
        public function Mountain()
        {
            trace ("I am a mountain");
            // do something else
        }
    }
}

暫無
暫無

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

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