2010-06-26 32 views
0

我有一個名爲mc1_mc的紅色框,每當您拖動它時,都會爲舞臺添加一個新的小藍框。 Yhe的想法是,你可以拖動那些藍色的框。但是我不知道如何檢測它們。ActionScript 3:如果您單擊的對象是該類型的對象,您將如何進行比較

這是代碼:

var newBlok:Boolean; 
var blokIndex:int = 0; 
var blokje:blok; 
var huidigBlok:DisplayObject; 
var prullenBak:DisplayObject = getChildByName("groen_mc"); 

stage.addEventListener(MouseEvent.MOUSE_DOWN,pickUp); 
stage.addEventListener(MouseEvent.MOUSE_UP,dropIt); 

function pickUp(event:MouseEvent):void 
{ 
    trace(event.currentTarget); 
    trace(event.target); 
    trace(event.target.name); 

    if (event.target.name == "mc1_mc") 
    { 
     trace("hoi"); 

     blokje = new blok; 
     blokje.name = "blokje" + blokIndex; 
     blokIndex++; 

     addChild(blokje); 
     blokje.startDrag(true); 

    } 

    if (event.target.type == blok) 
    { 
     trace("blok"); 
    } 

    //blokjeVast = blokje; 
} 

function dropIt(event:MouseEvent):void 
{ 
    event.target.stopDrag(); 
} 

他不會真的來臨到行:跟蹤( 「BLOK」); 即使當我點擊的對象給出:

[object Stage] 
[object blok] 
blokje0 

爲行。

trace(event.currentTarget); 
trace(event.target); 
trace(event.target.name); 

沒有人知道如何檢查它是否爲「blok」類型的對象?

回答

1

要檢查對象是否屬於某種類型,可以使用is運算符。

所以,你應該改變這樣的:

if (event.target.type == blok) 
{ 
    trace("blok"); 
} 

要這樣:

if(event.target is blok) 
{ 
    trace("blok"); 
} 

如果目標是類型勃洛克,你應該看到痕跡。

這裏有一個警告。 ìs告訴你一個對象是否屬於某種類型。由於類可以擴展其他類並實現接口,因此應該首先檢查最派生或特定的類(如果要區分Sprite和MovieClip)。

var mc:MovieClip = new MovieClip(); 

if(mc is MovieClip) { 
    trace("is MovieClip"); 
} else if(mc is Sprite) { 
    trace("is Sprite"); 
} 

// even if mc is a MovieClip, your code will never get in the else block 
if(mc is Sprite) { 
    trace("is Sprite"); 
} else if(mc is MovieClip) { 
    trace("is MovieClip"); 
} 
+0

謝謝soooo爲什麼它總是這麼簡單:S xD – matthy 2010-06-26 14:38:24

相關問題