AS2舞台大小检测/ MC调整大小和帧更改时的位置?
创建一个全屏幕的网站,没有戏剧。AS2舞台大小检测/ MC调整大小和帧更改时的位置?
我面对的唯一问题是,如果你调整窗口的大小,然后单击一个新的菜单,项目的方案定位:即:
contactheader._x = Stage.width/2 - 252;
contactheader._y = Stage.height/2 - 264;
不踢,直到你'通过重新调整窗口大小来将它撞到位。看到这里有台阶活生生的例子,看问题:
项目文件在这里:http://flash.pcfuse.com/mySite.zip
我能做些什么,以从忽略了自己的方案定位停止的项目?
三江源亲切
我想你可能会运行到的问题是,当你将你的Flash应用程序的不同部分,要添加事件侦听器,使显示的对象在调整大小正确定位。但是,在实际转到该部分时,您没有对这些对象进行任何动态定位。
为了澄清,当flash片首次加载时,它会抓住舞台的高度和宽度,它是否将对象放置在这些计算上,然后坐在那里。当你点击标签时,它不会重新加载这些对象并重新定位它们,因为它在应用程序第一次启动时就这样做了。一旦你开始调整swf的大小,它会将它们弹出来,因为这是onresize事件应该做的事情。
我会建议编写一个函数,在每个部分中执行对象的定位,然后在您点击某个选项卡时打开要打开的特定部分时调用该函数,然后从onresize中调用该函数事件。
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;
这将导致更高的CPU使用率,因为您不断更新大小在(默认)12 fps。 – Raptor 2013-05-19 17:03:07
三江源亲切:) – 2011-06-16 08:03:24