原因有二:
解决办法:
上来先:stage.scaleMode = StageScaleMode.NO_SCALE;
1.IE底下,SWFOBJECT嵌入swf的时候,有瞬间的stage的width跟height是0导致的。
2.stage.scaleMode = StageScaleMode.NO_SCALE;//这句话瞬间也会导致stage的width跟height为0.
解决办法:
上来先:stage.scaleMode = StageScaleMode.NO_SCALE;
然后别急着new Starling,而是先判断stage.width和height是否为0,为0,就侦听resize事件。具体代码:
public function Test()
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
if( stage.stageWidth > 0 && stage.stageHeight > 0 )
{
start();
}
else
{
stage.addEventListener( Event.RESIZE, onResize );
}
}
private function onResize( e:Event ):void
{
if( stage.stageWidth > 0 && stage.stageHeight > 0 )
{
stage.removeEventListener( Event.RESIZE, onResize );
start();
}
}
public function start():void
{
starlingEngin = new Starling( Game, stage );
starlingEngin.antiAliasing = 1;
starlingEngin.showStats = true;
starlingEngin.start();
}