我尝试从URL地址添加图像并在点击它时开始拖动它,但我无法进行拖动功能。
var url:String = 'http://www.helpexamples.com/flash/images/image1.jpg';
var urlRequest:URLRequest = new URLRequest(url);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
loader.load(urlRequest);
addChild(loader);
function loader_complete(evt:Event):void {
var target_mc:Loader = evt.currentTarget.loader as Loader;
target_mc.x = (stage.stageWidth - target_mc.width) / 2;
target_mc.y = (stage.stageHeight - target_mc.height) / 2;
target_mc.addEventListener(MouseEvent.CLICK, startDraging);
}
function startDraging(e:MouseEvent):void {
var obj:MovieClip = e.target as MovieClip;
obj.startDrag();
}
答案 0 :(得分:3)
此处的问题是,在您的完整功能loader_complete()
中,您将target_mc
设置为Loader
类型。加载程序无法访问startDrag()
或stopDrag()
。
您可以做的是创建新的MovieClip
并将加载的内容添加到MovieClip
。所以在loader_complete()
:
function loader_complete(evt:Event):void {
var target_mc:MovieClip = new MovieClip(); //new movieclip
target_mc.addChild( evt.target.content ); //add the content
target_mc.x = (stage.stageWidth - target_mc.width) / 2;
target_mc.y = (stage.stageHeight - target_mc.height) / 2;
target_mc.addEventListener(MouseEvent.CLICK, startDraging);
addChild( target_mc ); //add target_mc
}
现在你的开始拖动应该有效。