Wie greife ich auf Stage Class-Eigenschaften in der Costum-Klasse zu?ActionScript 3.0 stageWidth in benutzerdefinierter Klasse
Klasse:
package {
import Main;
import flash.events.*;
import flash.display.Sprite;
import flash.display.Stage;
public class Run extends Sprite {
var obj:a1_spr;
public function Run() {
runAssets();
}
private function runAssets():void {
obj = new a1_spr()
addChild(obj);
obj.x = stage.stageWidth/2;
}
}
}
Ausgang:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
Tank Sie. Es klappt. Aber ich bin mir nicht sicher, warum ich das verstehe. Kannst du mir bitte erklären, warum ich es mit Zuhörer laufen lassen muss? –
Die Bühne Eigenschaft aller Displayobjects ist null, bis sie auf der Anzeigeliste hinzugefügt werden, so dass Sie, bevor Sie es in die Aufgabe ist sicherzustellen, müssen zuzugreifen;) – Cay
Wenn Sie Ihr Objekt mit var myObject instanziiert: MyObject = new MyObject() Der Konstruktor wird sofort ausgeführt, einschließlich aller Methoden, die Sie auch innerhalb des Konstruktors aufrufen. Auch wenn die nächste Zeile nach dem neuen MyObject addChild (myObject) ist, befindet sich das myObject nicht auf der Bühne oder hat Bezug auf die Bühne. Sie könnten auch Bühne: Stage ein Konstruktorargument von MyObject, also neues myObject (this.stage), und Sie hätten sofortigen Zugriff auf die Stufe der Anwendung. –