Flash 使用加载程序从DisplayObject转换为Sprite
您知道为什么AS3代码可以工作吗:Flash 使用加载程序从DisplayObject转换为Sprite,flash,actionscript-3,sprite,Flash,Actionscript 3,Sprite,您知道为什么AS3代码可以工作吗: var loader = new Loader(); loader.load(new URLRequest("http://127.0.0.1/items/boing.png"))); var o:DisplayObject = addChild(loader); o.x = 100; o.y = 100; 但是如果我投给雪碧它就不起作用了?即精灵显示在(0,0)而不是(100100)上: 我如何正确地使用精灵而不是DisplayObject?我需要一些sp
var loader = new Loader();
loader.load(new URLRequest("http://127.0.0.1/items/boing.png")));
var o:DisplayObject = addChild(loader);
o.x = 100;
o.y = 100;
但是如果我投给雪碧它就不起作用了?即精灵显示在(0,0)而不是(100100)上:
我如何正确地使用精灵而不是DisplayObject?我需要一些sprite的功能(拖放、useHandCursor…),但我希望我仍然可以使用加载程序的快速书写。你不是在用AS3方式施放 在AS3中,有两种铸造方法: 雪碧(obj) 及 作为精灵的obj 如果obj不是精灵,第一个会导致错误。如果obj不是精灵,则第二个返回null
第一个是您应该在此处使用的位图。尝试类似的操作,以在舞台上获得位图。如果您想将其作为精灵,我认为最好且最简单的方法是在completeHandler中创建一个新精灵,然后将位图附加到新创建的精灵
package {
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
public class TestMain extends Sprite {
private var mLoader:Loader;
public function TestMain() {
mLoader = new Loader();
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
mLoader.load(new URLRequest("image.png"));
}
private function completeHandler(event : Event) : void {
var bmp:Bitmap = mLoader.content as Bitmap;
bmp.x = 100;
bmp.y = 100;
addChild(bmp);
}
}
}
很抱歉,我在示例中使用了haxecast。我试着用你的第一个符号。
package {
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
public class TestMain extends Sprite {
private var mLoader:Loader;
public function TestMain() {
mLoader = new Loader();
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
mLoader.load(new URLRequest("image.png"));
}
private function completeHandler(event : Event) : void {
var bmp:Bitmap = mLoader.content as Bitmap;
bmp.x = 100;
bmp.y = 100;
addChild(bmp);
}
}
}