Я пытаюсь создать отдельный класс, который рисует прямоугольник и добавляет его на сцену, но проблема в том, когда я пытаюсь сделать это из самого класса, я ничего не получил на сцена.Добавление movieClip в сцену из дочернего класса
мои настройки следующим образом:
Main.fla, который имеет класс документ Main.as:
package
{
import flash.display.Sprite;
import Window;
public class Main extends Sprite
{
public function Main():void
{
var newWindow:Window = new Window();
}
}
}
класс, где MovieClip isadded
package {
import flash.display.MovieClip;
import flash.display.Sprite;
public class Window extends Sprite {
public function Window(x:Number= 0, y:Number= 0, width:Number = 100, height:Number=100,title:String="Window"):void {
var newWindow:MovieClip = new MovieClip();
addChild(newWindow);
newWindow.graphics.beginFill(0xFF9966, 1);
newWindow.graphics.drawRect(x, y, width, height);
trace("Instance created");
}
}
}
Я не вижу проблем с существующим в настоящее время кодом. Вы пытались добавить «newWindow» к сцене вместо «this» и не смогли? :) – Vesper
, когда я пытаюсь добавить его на сцену, я получил следующую ошибку: 'TypeError: Error # 1009: Не удается получить доступ к свойству или методу ссылки на нулевой объект.' – RootOfMinusOne
Правильно, когда вы сначала создаете экземпляр класса, его 'stage 'Свойство равно null. Доступ к сцене имеет только класс документа. Вам лучше использовать 'this.addChild (xxx)' вместо добавления на сцену, потому что есть обстоятельства, когда ваш SWF может быть встроен в другой, и тогда вы все равно не получите подходящую сцену. Кроме того, добавление в 'this' поможет вам управлять своими окнами. – Vesper