0

我有一个脚本(我不记得在哪里找到它),用于根据舞台宽度和高度调整图像大小。

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

这是我的代码:

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));单独放置此代码,但没有任何反应。

4

1 回答 1

0

是什么bkg_container?电影剪辑?

不管是什么,你都应该绑定一个“onload”事件(Loaders有这个,也许这就是你用来加载图像的东西)然后调用那个方法。因为如果你在图片加载之前调用它,它的宽高都是0。所以调整大小什么都不做。

图像加载器实例中的类似内容可能是:

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

更新:如果bkg_container是影片剪辑,我想您正在使用loadMovie加载背景。如果是这种情况,您不能向它添加 onLoad 事件侦听器,您必须这样做onEnterFrame,或者可能使用setTimeout它不会在加载时减慢您的电影。

我建议您不要使用它,而是使用Loader组件并附加一个完整的事件处理程序(对不起,我说过load,它应该是complete,并且仅适用于 Loader)。这样,您还可以添加进度事件处理程序来显示加载条等...

还有MovieClipLoader你可能想研究的,但我从来没有用过。想法是一样的。

于 2012-05-17T21:30:18.967 回答