2010-02-21 17 views
6

Hücrelerden ve kartlardan oluşan küçük satranç uygulamam var. Kullanıcı kurulu bir öğe taşıdığında, ben (ana satranç tahtası sınıfında olayı yakalayamaz, KurulAS3: Olaylar olay sınıfından nasıl gönderilir?

public class BoardCell extends Canvas 
{ 
    public function Sample():void 
    { 
     ....Some code 
     var e:Event = new Event("newMove") 
    dispatchEvent(e); 
    } 
} 

Ancak bir dinleyici dinlemek ve çağrı böylece tahta hücresi olay gönderebilirsiniz istiyorum değil ben

public class FrontEndBoard extends ChessBoard 
{ 

    private var initialPoition:String; 

    public function FrontEndBoard() 
    { 
     //TODO: implement function 
     this.addEventListener(Event.ADDED_TO_STAGE, addedToStage); 
     this.addEventListener("newMove", moveEvent); 
     super(); 
    } 

cevap

5

2 seçeneğiniz var) doğru bunun için dinlemek emin olun:)

1 yerine this.addEventListener ("newMove", moveEvent) arasında; BoardCell.addEventListener ("newMove", moveEvent) yapmak;

2) ebeveyne olay Buble kadar var (BoardCell varsayarak FrontEndBoard bir ekran çocuğum,) olay yapıcısı parametre olarak

var e ayarlayın geçerli: Olay = new Olay ("newMove" ,doğru) .

1

BoardCell sınıfından göndereceğiniz etkinlik balonlanmalıdır, bu nedenle herhangi bir üst sınıfta yakalanır. "Kabarcıklar" bayrağını true değerine ayarlayabileceğiniz Event sınıfının yapıcı argümanlarını kontrol edin.

4

FrontEndBoard ve BoardCell uygulamanızda hiyerarşik olarak tam olarak nasıl olduğundan emin değilim, ancak "newMove" olayına bubble sağlayabileceğini söylemeniz gerekebilir.

var e:Event = new Event("newMove", true);