2014-09-24 22 views
0

好吧,這裏是我的意思一個簡單的例子:如何在屬性值爲事件目標時引用實例?

public class Blob extends MovieClip { 

    public var gfx:BlobClip; //BlobClip is a MovieClip class in my assets library 
    public var bCount:uint; 

    //... 

所以gfx是我Blob對象的圖形表示。

我設置了鼠標事件,使gfx夾點擊:

blob.gfx.addEventListener(MouseEvent.CLICK, blobClick); //blob is an instance of Blob 

blobClick功能我可以,當然訪問使用e.targetblobgfx剪輯。

function blobClick(e:MouseEvent) { 
    trace("Target:"+e.target); 
} 

但我想,而不是指代blob對象本身,這樣我可以訪問bCount屬性。我該怎麼做呢? :(

我想我可能需要使用e.target.roote.target.parent但這些涉及顯示。

在這個問題上的任何援助將不勝感激。

+0

是'this'?試試你的處理程序:「trace(this)」,它告訴了什麼? – Cherniv 2014-09-24 08:04:39

+0

'trace(this)'返回我的Main對象(Main.as)。很高興知道。 – Drekinn 2014-09-24 11:22:12

回答

0

我希望不出現錯別字...我沒跑成Flash或柔性......但是這應該給你你需要什麼。

public class Blob extends MovieClip { 

    public var gfx:BlobClip; //BlobClip is a MovieClip class in my assets library 
    public var bCount:uint; 

    ... 

    // this is your contructor 
    public function Blob() 
    { 

      super(); 
      // add reference here 
      gfx.parentBlob = this; 
    } 
    .... 
} 

添加屬性「parentBlob」內BlobClip

class BlobClip extends MovieClip 
{ 
    ... 
    public var parentBlob:Blob = null; 
    ... 

    public function BlobClip() 
    { 
     super(); 
    } 

} 

然後在你的事件處理程序,你可以有這樣的事情

function blobClick(e:MouseEvent) 
{ 
    var bClip:BlobClip = e.target as BlocbClip; 

    // this is what you need... 
    var blob:Blob  = bClip.parentBlob; 

} 
+0

啊..看起來'super()'是我最初的關鍵詞。儘管如此,我可能需要一段時間才能理解這個例子。感謝@Adrian在這件事上的幫助。 :) – Drekinn 2014-09-24 14:16:44

相關問題