创建一个全屏幕的网站,那里没有戏剧。
我面临的唯一问题是如果你调整窗口大小,然后点击一个新菜单,项目的程序化定位:即:
contactheader._x = Stage.width / 2 - 252;
contactheader._y = Stage.height / 2 - 264;
没有踢,直到你通过再次调整窗口“碰撞”到位。请参阅此处获取实时示例以及查看问题的步骤:
此处的项目文件:http://flash.pcfuse.com/mySite.zip
如何阻止项目忽略自己的程序化定位?
谢谢你
答案 0 :(得分:1)
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 ();
得到了;)
答案 1 :(得分:0)
我认为您可能遇到的问题是,当您访问Flash应用程序的不同部分时,您将添加一个事件侦听器,以便在调整大小时正确定位显示对象。但是,在实际转到该部分时,您没有对这些对象进行任何动态定位。
为了澄清,当闪光片首次加载时,它会抓住舞台的高度和宽度,是否将物体放置在那些计算上,然后坐在那里。当您单击选项卡时,它不会重新加载这些对象并重新定位它们,因为它在应用程序首次启动时会这样做。一旦你开始调整swf的大小,它就会弹出它们,因为这就是onresize事件应该做的事情。
我建议编写一个函数来对每个部分中的对象进行定位,然后每当你点击要通过单击选项卡打开的特定部分时调用它,然后从onresize事件中调用该函数
答案 2 :(得分:0)
试试这个:
onEnterFrame = function(){
contactheader._x = Stage.width / 2 - 252;
contactheader._y = Stage.height / 2 - 264;
}
如果您想在任何时候停止更新其位置,请使用:
onEnterFrame = null;