2013-05-04 73 views
0

我無法弄清楚如何獲取信件在哪個插槽上方放置的信息,所以這些字母只能對齊到最後一個插槽,因爲它是唯一正確引用的插槽。任何人都可以告訴我一種方法來檢查哪個對象(插槽)的字母被放在上面?我創建的兩種動畫片段僅僅是信件的背景和插入其中的插槽。檢查碰撞時如何引用兩個動態對象?

var myFormat:TextFormat = new TextFormat(); 
    myFormat.color = 0xFFFFFF; 
    myFormat.font = "Verdana"; 
    myFormat.size = 35; 
    myFormat.bold = true; 
    myFormat.align = TextFormatAlign.CENTER; 

var myString:String = "firefly" 
myString = myString.toUpperCase(); 
var myArray:Array = myString.split(''); 

for(var i:Number = 0; i < myString.length; i++) { 

    var myBogstav:bogstav = new bogstav(); 
    var myBogstavSlot:bogstavSlot = new bogstavSlot(); 

    var myText:TextField = new TextField(); 
    myText.selectable = false; 
    myText.width = 50; 
    myText.height = 50; 

    addChild(myBogstavSlot); 
    addChild(myBogstav); 
    myBogstav.addChild(myText); 

    myText.defaultTextFormat = myFormat; 
    myText.text = myArray[i]; 

    myBogstavSlot.name = "bogstavSlot" + i; 
    myText.name = "bogstav" + i; 
    myBogstav.name = "bogstavBG" + i; 

    myBogstavSlot.x = i*60 + 10; 
    myBogstavSlot.y = myBogstav.y - 100; 
    myBogstav.x = i*60 + 10; 

    myBogstav.addEventListener(MouseEvent.MOUSE_DOWN, ClickToDrag); 
    myBogstav.addEventListener(MouseEvent.MOUSE_UP, releaseToDrop); 
} 

var startPosition:Point; 

function ClickToDrag(event:MouseEvent):void 
{ 
    setChildIndex(event.target.parent, numChildren - 1); 
    event.target.parent.alpha = 0.6; 

    startPosition = new Point(event.target.parent.x, event.target.parent.y); 

    event.target.parent.startDrag(); 
} 

function releaseToDrop(event:MouseEvent):void 
{ 
    setChildIndex(event.target.parent, 0); 
    event.target.parent.alpha = 1; 
    event.target.parent.stopDrag(); 

    if (event.target.parent.hitTestObject(MovieClip)){ 
     event.target.parent.x = MovieClip.x; 
     event.target.parent.y = MovieClip.y; 

    } else { 
     event.target.parent.x = startPosition.x; 
     event.target.parent.y = startPosition.y; 
    } 
} 

任何幫助都非常感謝。

回答

0

只需使用droptarget屬性(doc)。此屬性包含一個DisplayObject的引用,拖放的項目已被刪除。

function releaseToDrop(event:MouseEvent):void 
{ 
    setChildIndex(event.target.parent, 0); 
    event.target.parent.alpha = 1; 
    event.target.parent.stopDrag(); 
    // here it just test if the dragged item is dropped on a bogstavSlot instance 
    // adapt the condition to your needs 
    if (event.target.parent.droptarget is bogstavSlot){ 
     event.target.parent.x = event.target.parent.droptarget.x; 
     event.target.parent.y = event.target.parent.droptarget.y; 

    } else { 
     event.target.parent.x = startPosition.x; 
     event.target.parent.y = startPosition.y; 
    } 
}