AS3 |从URL加载图像并开始拖动问题

时间:2014-03-05 19:37:12

标签: actionscript-3 actionscript

我尝试从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();
}

1 个答案:

答案 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
}

现在你的开始拖动应该有效。