答案應該很簡單,但我無法找到任何地方..OpenFL - 如何在另一個類中使用addChild?
所以我有一個Main.hx類和ObjectManager.hx類。 在主類的構造函數中,它調用ObjectManager.addAllToScreen();然後我的objectManager應該將這些對象添加到屏幕上。
我認爲這樣可以,因爲在Main的構造函數中,你可以說addChild(Objects.platform);但顯然addChild不可訪問?
錯誤是:Class<Main> has no field addChild
所以我想,addChild是一個Sprite的方法或什麼?
package;
class Main extends Sprite {
public function new() {
super();
ObjectManager.addAllToScreen();
}
}
在的ObjectManager:
package;
class ObjectManager {
public static function addAllToScreen():Void {
Main.addChild(Objects.platform);
Main.addChild(Objects.messageField);
}
}
UPDATE:
確定,所以現在的代碼是這樣的......它從永遠顯示在屏幕上了對象運行良好分開 - 但是如果addChild代碼放在主體中,它們顯示出來。
主要:
class Main extends Sprite {
public function new() {
super();
var objectManager = new ObjectManager();
objectManager.addAllToScreen();
}
的ObjectManager:
package;
import openfl.display.Sprite;
class ObjectManager extends Sprite {
public function new() {
super();
}
public function addAllToScreen() {
addChild(Objects.platform);
addChild(Objects.messageField);
}
}
嗨,我已經更新了代碼,我認爲你說應該改爲,但它現在給我一個新的錯誤... – k13ran
您正在使用靜態功能。 addChild()必須從實例中調用。 – larsiusprime
好吧,我認爲我們已經到了那裏 - 它不再是一個靜態調用,並且不會拋出錯誤,但仍然沒有對象顯示。 – k13ran