[英]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命令無法正常工作,並且我的圖像沒有出現在舞台上。 任何幫助將不勝感激。 我花了太長時間試圖解決這個問題,但我卻一無所獲。
謝謝!
對於初學者,您應該嘗試閱讀有關類的內容的更多信息。 您的代碼中有幾個錯誤:
您實際上在那里正在執行堆棧溢出。 由於這個站點的名稱,這很有趣。 :)
您正在遞歸定義與父代相同類型的變量。 創建第一個myMountain時,它將調用它的構造函數。 在其中,它將創建一個變量myMountain,該變量也將稱為其構造函數。 等等。
因此,在var myMountain:Mountain = new Mountain();
下沒有任何代碼行var myMountain:Mountain = new Mountain();
會出現。 如果需要,可以嘗試將trace
移到該行之前。 如果您進行編譯,將會得到無數的“我是一座山”。
stage
,如果你的類不添加到舞台。 考慮到您有一部空電影,其庫符號為“ 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.