Я работаю с Flash Professional IDE. Обращаясь к приведенным ниже классам, если я установил свойство класса FLA в testingsub1 (игнорируя Main), код работает нормально. Но если я задал класс Main, код умирает при stage.addChild(container);
теста с «TypeError: Error # 1009: не может получить доступ к свойству или методу ссылки на нулевой объект».Почему этап не доступен в следующем примере?
Это противоречит моему пониманию того, что этап является глобальным и всегда доступен для непосредственного отображения отображаемых объектов. Любое понимание и решение?
package {
//import com.idtlw.iso.utils.Const;
import flash.display.*;
public class testingsub1 extends testing {
public function testingsub1() {
trace("initializing testing sub 1");
var container:Sprite=new Sprite();
var test1:Sprite=new Sprite();
container.addChild(test1);
}
}
}
package {
import flash.display.*;
public class testing extends Sprite {
public function testing() {
trace("initializing testing");
var container:Sprite=new Sprite();
var test1:testreg1=new testreg1();
container.addChild(test1);
stage.addChild(container);
}
}
}
package
{
import flash.display.*;
public class Main extends Sprite
{
public function Main()
{
var test1:Sprite=new Sprite();
stage.addChild(test1);
var tester:testingsub1=new testingsub1();
}
}
}
«Этап» не доступен по всему миру. Свойство 'stage' объекта DisplayObject равно null, если оно не привязано к иерархии списка отображения сцены. – prototypical
Я бы сказал, что - кроме основного экранного объекта - ничто не должно требовать прямого доступа к «stage». Мы говорим о компонентах, которые могут быть вложены во многие возможные ситуации; компонент не должен иметь возможность напрямую добавлять на сцену другой компонент. – poke