仅当页面调整大小时,调整后的背景才能在启动时起作用

时间:2012-05-17 18:25:54

标签: flash actionscript actionscript-2

我有一个脚本(我不记得我发现它的位置)根据舞台宽度和高度调整图像大小。

我的问题是,当您打开网站时,背景图像很大,并且不适合舞台分辨率。调整页面大小时,脚本可以正常工作并调整图像大小。如何在最初访问网站时调整大小?

这是我的代码:

resizeImage = function (getResizeClip)
{
    //eval(getResizeClip);
    stageWidth = Stage.width;
    stageHeight = Stage.height;
    bgWidth = eval(getResizeClip)._width;
    bgHeight = eval(getResizeClip)._height;
    heightRatio = stageWidth / bgWidth;
    widthRatio = stageHeight / bgHeight;
    if (heightRatio < widthRatio)
    {
        eval(getResizeClip)._width = widthRatio * bgWidth;
        eval(getResizeClip)._height = widthRatio * bgHeight;
    }
    else
    {
        eval(getResizeClip)._width = heightRatio * bgWidth;
        eval(getResizeClip)._height = heightRatio * bgHeight;
    }
};

和此:

myListenerload = new Object();
myListenerload.onResize = function() {

loader._x = Stage.width / 2;
loader._y = Stage.height / 2;   

   resizeImage(eval(bkg_container));

};
Stage.addListener(myListenerload);
myListenerload.onResize();

我正在尝试单独使用此代码resizeImage(eval(bkg_container));,但没有任何反应。

1 个答案:

答案 0 :(得分:0)

什么是bkg_container?电影剪辑?

无论是什么,你都应该向它绑定一个“onload”事件(Loader s有这个,也许这就是你用来加载图像的东西)然后调用那个方法。因为如果在加载图像之前调用它,它的宽度和高度都是0。所以大小调整没有任何作用。

图像加载器实例中的那些东西可能是:

on (load) {
    _root.resizeMe(this);
}

更新:如果bkg_container是影片剪辑,我认为您正在使用loadMovie加载背景。如果是这种情况,则无法向其添加onLoad事件侦听器,您必须执行onEnterFrame,或者使用setTimeout,以便在加载时不会降低影片的速度

我建议你不要使用它并使用Loader组件并附上一个完整的事件处理程序(抱歉,我说load,它应该是complete,这是为了仅限装载机)。这样你也可以添加一个进度事件处理程序来显示加载栏等......

您可能还想查看MovieClipLoader,但我从未使用过它。这个想法是一样的。