2009-04-27 56 views
0

我想加載一個圖像使用加載程序,然後我想讓它可拖動。加載是通過從tilelist中選擇,如下所示,但我不知道在AS3中拖放,任何人都可以幫助我嗎?我想讓它儘可能簡單。製作加載圖像可拖動動作3

這裏是我的代碼加載圖像:

var charge1:Loader = new Loader(); 
addChild(charge1); 
this.addChildAt(charge1, getChildIndex(bg)); 
charge1.x = 280; 
charge1.y = 270; 

... 

function setCharge1(e:Event):void{ 
    trace(e.target.selectedItem.source); 

    this.charge1.load(new URLRequest(e.target.selectedItem.source));  
    this.charge1.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete); 
} 

回答

2

欲哭正沿着正確的路線去,但你想要做的就是讓的LoaderInfo的內容,這實際上是在東西裝像

private function onComplete(event : Event) : void 
{ 
    var loadedClip : MovieClip = LoaderInfo(event.target).content; 

    loadedClip.addEventListener(MouseEvent.MOUSE_DOWN, function(event : MouseEvent) 
    { 
    loadedClip.startDrag(); 
    }); 

    stage.addEventListener(MouseEvent.MOUSE_UP, function(event : MouseEvent) 
    { 
     loadedClip.stopDrag(); 
    }); 

} 
剪輯。
0

裝載機是雪碧的子類,所以你可以使用的startDrag和stopDrag方法。

例如:

charge1.addEventListener("mouseDown", function() { 
    charge1.startDrag(); 
}); 

stage.addEventListener("mouseUp", function() { 
    charge1.stopDrag(); 
}); 
+0

恐怕沒有,因爲到Adobe文檔 繼承:\t裝載機 - >級DisplayObjectContainer - > InteractiveObject - 要>的DisplayObject - >此事件 - >對象 和你的代碼給了我這樣的: 錯誤#1069:在flash.display.Loader中找不到屬性stopDrag,並且沒有默認值。 – Dungeo 2009-04-27 08:07:15

+0

對不起,我在DisplayObject和Sprite之間感到困惑。希望詹姆斯海的回答可以幫助你:) – yuku 2009-04-27 08:27:25

1

使用下面的代碼:

this.addEventListener(MouseEvent.MOUSE_DOWN, dragMovie); 
this.addEventListener(MouseEvent.MOUSE_UP, dropMovie); 
this.buttonMode = true; 
private function dragMovie(event:MouseEvent):void 
{ 
    this.startDrag(); 
} 

private function dropMovie(event:MouseEvent):void 
{ 
    this.stopDrag(); 
} 
2

這是最簡單的方法給我...

/* Load Image */ 

var myLoader:Loader = new Loader(); 
imageContainer.addChild(myLoader); 
var url:URLRequest = new URLRequest("photo.jpg"); 
myLoader.load(url); 

/* Drag and Drop */ 

imageContainer.addEventListener(MouseEvent.MOUSE_DOWN, pickUp); 
function pickUp(event:MouseEvent):void 
{ 
imageContainer.startDrag(); 
} 
stage.addEventListener(MouseEvent.MOUSE_UP, dopIt); 

function dopIt(event:MouseEvent):void 
{ 
imageContainer.stopDrag(); 
}