Старый ответ
Вы должны инициализировать Submc. Тело класса Square должно выглядеть так:
public var submc:MovieClip;
public function Square()
{
submc = new MovieClip();
super(submc, 1234);
trace("submc : " + submc);
}
Переменная submc будет нулевой, пока вы либо не инициализируете ее, либо не создадите ссылку на какой-либо другой экземплярный объект.
Новый ответ
Если вы ссылаетесь на элементы на временной шкале, вам может потребоваться подождать, пока родительские элементы не будут добавлены на сцену, прежде чем ссылаться на вложенные элементы. Для этого вы можете добавить прослушиватель событий для ENTER_FRAME или ADDED_TO_STAGE.
package{
import flash.display.MovieClip;
public class Square extends SuperSquare
{
public var submc:MovieClip;
public function Square()
{
// -- either one of these should work
addEventListener( Event.ADDED_TO_STAGE, onAdded );
addEventListener( Event.ENTER_FRAME, validateStage );
}
}
public function onAdded( event:Event ):void
{
// -- creates a problem because you can only call a super constructor in a constructor
// super(submc, 1234);
trace("submc : " + submc);
}
public function validateStage( event:Event ):void
{
if( !stage ) return;
if( stage.stageWidth == 0 ) return;
// -- ok to reference stage elements now
removeEventListener( Event.ENTER_FRAME, validateStage );
}
}
Я не совсем уверен, что это ваша проблема. Тем не менее, я видел похожие проблемы со ссылками на элементы сцены слишком рано.