影片剪辑在AS3
我试图在AS3的URL加载图像变化的宽度和高度后消失,如下所示:影片剪辑在AS3
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的宽度为null。
这是经常误差设定的尺寸,则不能设置空显示对象(对象的宽度和高度是零)的大小。要设置您需要先画点什么显示对象的尺寸上它的graphics
(例如1 * 1像素的矩形),但你应该明白,以后它,你将只是扩展您的显示对象相对于它的原始尺寸,例如,如果你画1 * 1个像素的矩形,并=身高= 50,将scaleX和scaleY设置将是50,所以你如果说对加载器加载的图像将是巨大的大小:)这是关于闪存大小。
你的任务如何:有一个共同的规则 - 不要调整加载器大小,调整加载的图像大小。正如我上面所说的,装载程序的大小调整只会缩放您的图像,而不是设置大小。根据需要添加完整的处理程序并调整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;
}
你需要与你的MC打之前,您的装载机得到loadComplete事件
var myImageLoader:Loader = new Loader();
private var mcImage: MovieClip = new MovieClip();
var myImageLocation:URLRequest = new URLRequest("http://example.com/xyz.jpg");
myImageLoader.addEventListener(Event.COMPLETE, completeHandler);
myImageLoader.load(myImageLocation);
function completeHandler(e:Event){
mcImage.x = 100;
mcImage.y = 100;
mcImage.width = 50;
mcImage.height = 50;
addChild(mcImage);
mcImage.addChild(myImageLoader);
}
打我给它的Flash-广场;),但你应该添加监听器的contentLoaderInfo – 2013-02-03 17:38:32
肯定。对不起,我回复得有点快。 –
试试这个:
var myImageLoader:Loader = new Loader();
//hide until loaded
myImageLoader.visible = false;
//listen for load completed
myImageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
//...rest of your code (without setting width/height)
然后加入这一调整大小和加载时使人们看到:
function completeHandler(event:Event):void
{
myImageLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
myImageLoader.content.width = 50;
myImageLoader.content.height = 50;
myImageLoader.visible = true;
}
尝试:myImageLoader.width = 50; myImageLoader.height = 50; – 2013-02-03 17:27:10
我试过之前,同样的问题 – csuo
好。你需要等待图像加载,然后管理它的大小。我会后回答 – 2013-02-03 17:32:19