簡體   English   中英

使用ActionScript3中的類創建影片剪輯實例

[英]creating movie clip instance using class in ActionScript3

首先,我想說我只有幾個小時的AS3經驗。

現在,我有2個.as文件,其中一個是main.as ,第二個是Ship_.as

main.as:

package{
    import flash .display.*;
   // import Enemy;
    public class main extends MovieClip{
        public function main(){
    var hero:Ship_=new Ship_();
    addChild(hero); // I have to use addChild here also.
        }

    }
}

和Ship_.as是:

package{
    import flash .display.*;

    public class Ship_ extends MovieClip{
        private var myHero:Ship=new Ship(); // moved inside of class definition

        public function Ship_(){
            addChild(myHero);  // I think I added my movie clip into stage by this.
        }
    }
}

這是我的Ship MovieClip: http : //prntscr.com/2pjzdwv

當我對其進行測試時,我收到一條錯誤消息,提示“ 1013: The private attribute may be used only on class property definitions.

如果我更改了private var myHero:Ship=new Ship(); public var myHero:Ship=new Ship(); 我得到1180: Call to a possibly undefined method addChild. 錯誤。 有沒有人可以幫助我?

編輯

為了能夠在屏幕上看到太空MovieClip,我必須在代碼中注釋時使用兩個addChild()方法,盡管我認為Ship_構造函數中的一個就足夠了。您能解釋一下為什么還要使用addChild(hero);嗎? addChild(hero);

package{
    import flash .display.*;

    public class Ship_ extends MovieClip{
        private var myHero:Ship=new Ship(); // moved inside of class definition

        public function Ship_(){
            addChild(myHero); // moved inside of contructor
        }
    }
}

當您在Ship_調用addChild()時,它將myHero添加到Ship_的實例。 但是Ship_'在哪里? 此時,它只是Main.main()內部的一個變量,但尚未添加任何內容。

因此,您所擁有的就像是三個盒子,A,B和C。起初它們都是分開布置的,沒有一個在另一個里面。 但是隨后您將Box C放入BoxB。但是現在您只不過在B內有C,而A仍處於關閉狀態。 因此,要完成該過程,您必須將Box B放入Box A,並且由於C已經在B的內部,因此,它將最終使C最終位於A的內部。

暫無
暫無

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

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