这里有一个问题,我已经尝试找出,但仍然无法得到正确的方法来解决它。
在MAC上使用Firefox3.5时,我对显示有问题,我可以看到我的菜单,显示是正确的。菜单的位置就在它应该定位的位置之上。在MACOSX上,Safari可以很好地工作。我的闪存尺寸是: 1440x750。
看上去火狐无法识别stage.StageWidth和stage.StageHeight。它返回0。
一些人建议通过FlashVars传递电影的实际宽度和高度。这部电影用这些代替了stage.stageWidth和stage.stageHeight
有人有关于如何解决这个问题的代码示例吗??我很感激能指出正确的方向
我是否使用了正确的EnterFrame方法??
public function Main()
{
addEventListener(Event.ADDED_TO_STAGE, handleOnStage, false, 0, true);
}
private function handleOnStage(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, handleOnStage);
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, handleResizeObjectsOnStage, false, 0, true);
addEventListener(Event.ENTER_FRAME, handleObjectsOnStage, false, 0, true);
bottomBarMC.x = 0;
bottomBarMC.y = 0;
}
private function handleObjectsOnStage(event:Event):void
{
if (stage.stageWidth != 0 && stage.stageHeight != 0) {
removeEventListener(Event.ENTER_FRAME, handleObjectsOnStage);
initIntro();
initObjectsOnStage();
}
}
private function handleResizeObjectsOnStage(event:Event=null):void
{
if (stage.stageWidth != 0 && stage.stageHeight != 0) {
initObjectsOnStage();
}
}
private function initObjectsOnStage():void
{
// Resize dynamically bottomBarMC
bottomBarMC.width = stage.stageWidth;
bottomBarMC.height = stage.stageHeight;
addChild(bottomBarMC);
// Resize dynamically logo
logoMC.x = 40;
logoMC.y = stage.stageHeight - 100;
addChild(logoMC);
var loadIntro:Sprite = getCurrentMC();
//loadIntro.x = stage.stageWidth;
//loadIntro.y = 0;
addChild(loadIntro);
} 发布于 2010-06-06 08:13:33
问题是,在SWF加载时,阶段大小变量通常需要几毫秒来设置,因此,如果在初始化菜单之前运行定位菜单的代码,则会看到宽度和高度为0。
解决这个问题的方法是设置一个EnterFrame侦听器,该监听器将检查每个帧,以查看是否设置了舞台维度,当它们设置完毕时,它将调用您的定位代码。
这是如何做到的:
public function MainDocumentClass()
{
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(e:Event):void
{
if (stage.stageWidth != 0 && stage.stageHeight != 0)
{
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
onStageInitialized();
}
}
public function onStageInitialized():void
{
//put your menu positioning here
}https://stackoverflow.com/questions/2944672
复制相似问题