標題或多或少是不言自明的,我一直在通過許多不同的教程,我對AS3不太好,完全誠實。 (上圖顯示了我的目標)
無論如何,我在大多數在線教程中看到的拖放教程都基於一個對象到一個目標或多個對象到多個目標,所以我想知道是否有人能夠幫助我,並解釋如何讓多個對象連接到一個目標。
而且,如果可能使其可切換,例如,如果物體1已經就位於目標上,當我拖動物體2時,則物體1返回其原始位置,物體2代替它。
一個更簡單的方法來解釋這是說,我試圖創建一個遊戲,有三個雕像,用戶可以選擇三個之一放置在設定的目標區域。
我很抱歉,如果我說的沒有多大意義,如果這會導致混淆,將清理任何東西。這是我目前使用的AS3代碼。
var startX:int;
var startY:int;
circle1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
circle1_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
circle2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
circle2_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
circle3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
circle3_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
function pickUp(event:MouseEvent):void {
startX = event.target.x;
startY = event.target.y;
event.target.startDrag(true);
event.target.parent.addChild(event.target);
}
function dropIt(event:MouseEvent):void {
event.target.stopDrag();
var theTargetName:String = "target" + event.target.name;
var theTarget:DisplayObject = getChildByName(theTargetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == theTarget){
event.target.buttonMode = false;
event.target.x = theTarget.x;
event.target.y = theTarget.y;
}
else{
event.target.x = startX;
event.target.y = startY;
circle1_mc.buttonMode = true;
circle2_mc.buttonMode = true;
circle3_mc.buttonMode = true;
你可以把所有的雕像在一個陣列中,有一個'每個... in'聲明支票他們全部。另外,最好如果你合併你在這裏的兩個函數。 – David 2013-03-12 12:40:25