AS2舞台大小检测/ MC调整大小和帧更改时的位置?

AS2舞台大小检测/ MC调整大小和帧更改时的位置?

问题描述:

创建一个全屏幕的网站,没有戏剧。AS2舞台大小检测/ MC调整大小和帧更改时的位置?

我面对的唯一问题是,如果你调整窗口的大小,然后单击一个新的菜单,项目的方案定位:即:

contactheader._x = Stage.width/2 - 252; 
    contactheader._y = Stage.height/2 - 264; 


不踢,直到你'通过重新调整窗口大小来将它撞到位。看到这里有台阶活生生的例子,看问题:

http://flash.pcfuse.com/

项目文件在这里:http://flash.pcfuse.com/mySite.zip

我能做些什么,以从忽略了自己的方案定位停止的项目?

三江源亲切

我想你可能会运行到的问题是,当你将你的Flash应用程序的不同部分,要添加事件侦听器,使显示的对象在调整大小正确定位。但是,在实际转到该部分时,您没有对这些对象进行任何动态定位。

为了澄清,当flash片首次加载时,它会抓住舞台的高度和宽度,它是否将对象放置在这些计算上,然后坐在那里。当你点击标签时,它不会重新加载这些对象并重新定位它们,因为它在应用程序第一次启动时就这样做了。一旦你开始调整swf的大小,它会将它们弹出来,因为这是onresize事件应该做的事情。

我会建议编写一个函数,在每个部分中执行对象的定位,然后在您点击某个选项卡时打开要打开的特定部分时调用该函数,然后从onresize中调用该函数事件。

+0

三江源亲切:) – 2011-06-16 08:03:24

function setStage() 
{ 
    var sw:Number = Stage.width; 
    var sh:Number = Stage.height; 

    tabbar._x = Stage.width/2; 
    tabbar._y = Stage.height - 98; 

    google._x = Stage.width/2 - 183; 
    google._y = Stage.height/2 + 28; 

    about_txt._x = Stage.width/2 - 376; 
    about_txt._y = Stage.height/2 - 263; 

} 

// Add a listener 
var stageListener:Object = new Object(); 
Stage.addListener (stageListener); 

// When the Stage dimensions change... 
stageListener.onResize = setStage; 

// Call our function to set it all up right! 
setStage(); 


得到它;)

试试这个:如果在任何时候你想从更新其位置使用停止

onEnterFrame = function(){ 
    contactheader._x = Stage.width/2 - 252; 
    contactheader._y = Stage.height/2 - 264; 
} 

onEnterFrame = null; 
+0

这将导致更高的CPU使用率,因为您不断更新大小在(默认)12 fps。 – Raptor 2013-05-19 17:03:07