Soru - Cevap Bölümü
/ Kategori: Programlama
20/03/2010 - 21:18:10 cevap (4) Okunma : 717 Bu yazıyı 1 kişi tuttu.
Flex'te bir class'ı bir component'e parametre olarak gönderebilir miyim?
bir mxml component'im var ve bir class'ı parametre olarak göndermek istiyorum. İlk aklıma gelen aşağıdaki gibi bir kod oldu va tabiki hatalı. (Zaten yazarken çok mantıksız gelmişti ama şansımı denemek istedim.) Gönderdiğim parametre'de bir component, adı da "chessTable"
Bunu nasıl yapabileceğimi bilen var mı?
[Exclude(name="tableClass", kind="property")]
public var tableClass:Class;
public function joinTable(event:MouseEvent):void{
var gamePanel:tableClass = new tableClass();
}
Cevaplar
( Faydalı Cevapları Göster )
@salih daha öncede yazmıştım onLine oynanan bir satranç oyunu yazıyorum. Oluşturduğum tüm componentleri daha sonrada kullanılabilecek şekilde yazıyorum. Bu component de salon komponenti. Bir tabBar'ın ilk tab'ı Masalar listeleniyor ve oyuncu masalardan birine oturduğunda, oturduğu masa yeni bir tab'a dinamik olarak ekleniyor. Ben bu salon component'ini başka oyunlarda da kullanılabilir kulmak istiyorum. Yani oturulan masa bu gün satranç masası olur yarın tavla masası! Bu nedenle masa için kullanılacak class'ı parametre olarak göndermek istedim.
Tabii alternatif kullanımlar da var. Mesela 1 gönderirsem satranç masasıdır, 2 gönderirsem tavla masasıdır diye bir kodda yazabilirim. Ama en efektif çözümü arıyorum.
Sınıflar zaten birden fazla uygulamada kullanılabilecek şekilde yazılabiliyorlar. O yüzden temel öğeler inşaa edilip özel bölümleri(örneğin satranç ile alakalı kısımları) başka sınıflara bölebilirsin diye düşünmekteyim.
Bahsettin sekme hadisesi de tıpkı Chrome'daki gibi değil mi? Bir başlangıç sekmesinden seçilen web sitesi (salon) bizi başka bir pencereye (sekmeye) açıyor. Bu konuda bir sınıfım var ve yardımcı olacaksa kullanabilirsin. Basit bir mantık (depth) ile sahneye sekmeleri kuruyor ve içeriğini de dinamik olarak dışarıdan alıyor.
Gerçi senin sormak istediğin bu değil sanırım ama ben hala tam olarak anlamadım...:)
@salih öncelikle ilgin için teşekkür ederim. yahoo üyeliğin varsa games.yahoo.com/ch adresinden bu tarz çalışan bir satranç oyunu görebilirsin. Her sekmede(tab) birmasa açılmasına müsade ediyor. Benim yapmak istediğim ise şu:
Bir componentim var, masaları listeliyor. İş bu componetin ismi "saloon" ve bu salonda listelenenler bu gün satranç masaları, ama yarın öbür gün aynı component'i ben tabla için kullanmak isteyebilirim. Başka bir zaman da dama için kullanmak isteyebilirim.
Bir masaya oturulmak istendiğide ise şöyle bir kod çalışıyor:
public function joinTable(event:MouseEvent):void{
//oturulacak masanın ismini tableName isimli değişkene aldım
var tableName:String = this.tables.selectedItem.name;
//bu masada zaen oturuluyor mu kontrol ediyorum
var displayObj:DisplayObject = this.tabNav.getChildByName( tableName );
//Eğer bu masada zaten oturulmuyorsa:
if( displayObj == null ){
//Yeni bir satranç masası oluştur. Benim sorunum işte burada:
//Kullancağım class nasıl parametre yoluyla değiştirilebilir?
var gamePanel:ChessTable = new ChessTable();
//Ouşturulan satranç masasının controler nesnesi bu salondur.
gamePanel.tableController = this;
//Bu kendi yazdığım bir olay. Eğer masa listesinde bir değişiklik
//olursa(yeni bir masa oluşması yada bir masaya oturulması) tetikleniyor.
gamePanel.addEventListener(SaloonEvents.TABLELISTCHANGED,tableListChanged);
//Oluşuturulan satranç masasını tabBar'a ekle
displayObj = this.tabNav.addChild( gamePanel );
//Oluşan yeni sekmenin başlığı "örn: Masa1 isimli masa" şeklinde
//görünecek
gamePanel.label = tableName + " isimli masa";
//yeni masanın name özelliği de masanın ismi olacak
gamePanel.name = tableName;
//masanın içinde bu masaya oturulduğunda çalışacak olan yordam.
gamePanel.sitTable(event.target.id,tableName);
}
//geçerli sekme oturulan masa olsun.
this.tabNav.selectedIndex = this.tabNav.getChildIndex( displayObj );
}
işte böyle :D
Etkinlikler
Toplantı
Özgür Yazılım ve Linux Günleri '10
Özgür Yazılım ve Linux Günleri '10
İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü ve Linux Kullanıcıları Derneği'nin 9 yıldır düzenlemekte oldukları etkinlikler bu yıl `Özgür Y...
Kategori:
Toplantı
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 63 (50 kayıtlı, 13 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Blog Bölümü Blogevi.com'a Taşınıyor
Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...
7.500'üncü üyemiz Cem Koç!
Neler Yapılabilir?
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)









Derlenen sınıfın ismini mi almak istiyorsunuz?
Peki nereye göndermek istiyorsunuz? Yani derleme anına mı? Yoksa bir fonksiyon içine mi?