簡體   English   中英

在另一個框架上的AS3導入類

[英]AS3 Importing Class on Another Frame

我正在為我的一個新項目使用外部AS文件,該文件涉及創建繪圖位置,因此我使用了以下教程來了解所需的基本知識。

我希望應用程序能夠正常運行並正常運行,直到我決定要添加預加載和菜單-將應用程序的繪圖部分放在第三幀上-這使我遇到了這個錯誤:

TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。
-在Main / convertToBMD()
-在Main()

因此,我認為不是將Main.as添加到屬性下的Class中,而是將文件導入框架中。 使用方法:

var main:Main = new Main();
addChild(main);

除此之外,它失去了與實例名稱的所有連接。

Line 64 1120: Access of undefined property pencil.
Line 65 1120: Access of undefined property eraser.
Line 65 1120: Access of undefined property txt.
Line 82 1120: Access of undefined property board.
Line 83 1120: Access of undefined property board.

等等.....

所以我想知道,有沒有更好的方法可以做到這一點並使它在任何框架上都能工作?

通過更改外部腳本中的內容還是其他導入框架的方式?

謝謝

以利

問題在於命名實例是MainTimeline實例的屬性,它通常是該階段的第一個子級。 該屬性不再Main類的屬性。

因此,當您想通過Main訪問這些屬性時,可以執行以下操作:

var timeline:DisplayObject = stage.getChildAt(0);
var pencil:DisplayObject = timeline["pencil"];

// do stuff with 'pencil'
pencil.x = 500;
...

注意:這假設Main將設置其stage屬性,一旦通過addChild(main);將其添加,情況就會如此addChild(main); 但這意味着,在Main的構造函數中,您將無法訪問stage屬性來執行上述操作。 如果這是一個問題,請考慮讓Main在使用'pencil'等之前等待ADDED_TO_STAGE事件。

暫無
暫無

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

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