我正在尝试从 as3 中的 url 加载图像,如下所示:
var myImageLoader:Loader = new Loader();
private var mcImage: MovieClip = new MovieClip();
var myImageLocation:URLRequest = new URLRequest("http://example.com/xyz.jpg");
myImageLoader.load(myImageLocation);
mcImage.addChild(myImageLoader);
mcImage.x = 100;
mcImage.y = 100;
//mcImage.width = 50;
//mcImage.height = 50;
addChild(mcImage);
上面的代码工作正常,但由于我想要的图像与原始图像相比具有不同的大小,因此这里需要更改其大小。因此,在使用上面代码中注释的行之后,mcImage 消失了。
我尝试使用 mcImage.scaleX =myImageLoader.width/50 ,但是由于 myImageLoader 一开始没有加载,所以我们无法获取 myImageLoader 的宽度,该宽度为空。
最佳答案
这是设置尺寸时经常出现的错误,不能设置空显示对象(宽度和高度为零的对象)的尺寸。要设置显示对象的大小,您首先需要在其图形
上绘制一些内容(例如 1*1 px 矩形),但您应该明白,之后您只需相对于原始显示对象进行缩放大小,例如,如果您绘制 1*1 px 矩形并设置为=height=50,则scaleX和scaleY将为50,因此如果我们说加载器,您加载的图像将是巨大的:)这都是关于flash中的大小调整.
您的任务怎么样:有一个共同规则 - 不要调整加载程序的大小,而是调整加载的图像的大小。正如我上面所说,调整加载程序的大小只会缩放图像而不是设置其大小。添加完整的处理程序并根据需要调整 loader.content 的大小。
示例:
public function astest()
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplte);
addChild(loader);
loader.load(new URLRequest("https://www.google.ru/images/srpr/logo3w.png"));
}
protected function onComplte(event:Event):void
{
EventDispatcher(event.target).removeEventListener(event.type, arguments.callee);
var image:DisplayObject = (event.target as LoaderInfo).content;
image.width = 50;
image.height = 50;
}
关于actionscript-3 - 在AS3中更改宽度和高度后MovieClip消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14674991/