先看下面的一段脚本,这是比较经典的初始化脚本:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Test extends Sprite
{
public function Test()
{
if(stage)
{
init(null);
}
else
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
}
private function init(event:Event):void
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
//应用初始化时的脚本放在该方法下
trace(stage.stageWidth, stage.stageHeight);
}
}
}
该脚本在火狐下可以正常取得flash舞台的尺寸,可是在ie中却只会都返回0,不过我们在过几秒后再访问这个尺寸是就会正常,这说明在ie中,窗口第一次改变大小时是在我们的init方法之后的,该怎么解决呢,我们可以侦听Event.RESIZE事件,在舞台尺寸都不为0后再调用init方法即可,实现有点繁琐,所以小可这就奉上自己写的脚本了:
package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
public class StageTest extends Sprite
{
public function StageTest()
{
if(stage)
{
resizeListaner(null);
}
else
{
addEventListener(Event.ADDED_TO_STAGE, resizeListaner);
}
}
private function resizeListaner(event:Event):void
{
if(event != null)
{
removeEventListener(Event.ADDED_TO_STAGE, resizeListaner);
}
//限制 flash 的尺寸不进行拉伸, 否则不会触发 resize 事件
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
if(stage.stageWidth == 0 || stage.stageHeight == 0)
{
stage.addEventListener(Event.RESIZE, resizeHandler);
}
else
{
init();
}
}
private function resizeHandler(event:Event):void
{
if(stage.stageWidth > 0 && stage.stageHeight > 0)
{
stage.removeEventListener(Event.RESIZE, resizeHandler);
init();
}
}
private function init():void
{
//应用初始化时的脚本放在该方法下
trace(stage.stageWidth, stage.stageHeight);
}
}
}
相关推荐
AS3代码 心跳 package { import flash.display.Sprite; import flash.events.Event; public class Pulse extends Sprite { private var ball:Ball; private var angle:Number = 0; private var ...
{ //初始化分数值变量 Score=0 //实例化记分器对象 Score_MC = new score(); //设置记分器对象的位置 Score_MC.x = 100; Score_MC.y = stage.stageHeight - 25; //将记分器放置到舞台 ...
var book:Book = new Book(stage.stageWidth - 100, stage.stageHeight - 100); book.x = book.y = 50; addChild(book); book.addPage(/* DisplayObject Here */); book.addPage(/* DisplayObject Here */); book....
2021.1.14 改写PIXI.Text和PIXI.Graphics的渲染逻辑,需要在wxml文件中添加两个type 2d的canvas,然后把canvas传入PIXI中。其中一个用于Graphics渲染,一个用于Text渲染,传入参数示例:PIXI = createPIXI(canvas,...
loading.y=(stage.stageHeight-loading.height)/2 //====================================================================// var myContextMenu:ContextMenu = new ContextMenu(); myContextMenu....