我有一个脚本(我不记得我发现它的位置)根据舞台宽度和高度调整图像大小。
我的问题是,当您打开网站时,背景图像很大,并且不适合舞台分辨率。调整页面大小时,脚本可以正常工作并调整图像大小。如何在最初访问网站时调整大小?
这是我的代码:
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));
,但没有任何反应。
答案 0 :(得分:0)
什么是bkg_container
?电影剪辑?
无论是什么,你都应该向它绑定一个“onload”事件(Loader
s有这个,也许这就是你用来加载图像的东西)然后调用那个方法。因为如果在加载图像之前调用它,它的宽度和高度都是0
。所以大小调整没有任何作用。
图像加载器实例中的那些东西可能是:
on (load) {
_root.resizeMe(this);
}
更新:如果bkg_container
是影片剪辑,我认为您正在使用loadMovie
加载背景。如果是这种情况,则无法向其添加onLoad事件侦听器,您必须执行onEnterFrame
,或者使用setTimeout
,以便在加载时不会降低影片的速度
我建议你不要使用它并使用Loader
组件并附上一个完整的事件处理程序(抱歉,我说load
,它应该是complete
,这是为了仅限装载机)。这样你也可以添加一个进度事件处理程序来显示加载栏等......
您可能还想查看MovieClipLoader
,但我从未使用过它。这个想法是一样的。