[英]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.