Soru - Cevap Bölümü
/ Kategori: Programlama
[AS3] Library – Class – Boloncuk Yazar: Yağız Gürgül
Bu çalışmamızda rasgele büyüklükte, saydamlıkta ve konumda baloncuklar yapıcaz. Baloncuklarımızı kütüphaneden çağırıcaz , random komutlarını ise Class dosyasında yazıcaz.
Öncelik sahnemize bir yuvarlak çizelim. Bunu Movieclip yapalım Daha önceki makalemdeki gibi linkage bölümüne Boloncuk yazalım.
Birinci kare kodumuz:
var balon:Boloncuk = new Boloncuk();
addChild(balon);
Test ettiğinizde bir tane balon sahneye gelmiş durumda.Şimdi ise şu kodları yazalım:
for (var i:int=0; i<5; i++) {
var balon:Baloncuk = new Baloncuk();
addChild(balon);
//
balon.x=Math.random()*stage.stageWidth;
balon.y=Math.random()*stage.stageHeight
}
Test ettiğinizde 5 tane balon rasgele konumlarda oluşacak.Bu noktada bir sınıf yazalım.Tüm bu rasgele komutlarını buraya koyalımki çalışma içindeki kod satırımız azalsın karışıklık önlensin ve daha sonraki çalışmalarımızda kolayca kullanalabilelim.
Sınıf kodumuz:
package {
public class baloncuk {
public function baloncuk (hedef:Object,sw:Number,sh:Number) {
hedef.x=Math.random()*sw;
hedef.y=Math.random()*sh;
//
hedef.alpha=Math.random()
hedef.scaleX = hedef.scaleY = Math.random();
}
}
}
Bu dosyamızı baloncuk.as şeklinde kaydedelim.Tüm satırların anlamı:
1- package { ilk önce paket açılır.Bizim sınıf dosyamız tek klasörden oluştuğu için şu anda bir paket oluşturmamıza gerek yok.O yüzden boş bırakıyoruz
2- public class baloncuk { baloncuk adında bir sınıf açıyoruz.Burada public kelimesi önemli.Çünkü bu sayede Flash içinden ulaşabiliyoruz.
3- public function baloncuk (hedef:Object,sw:Number,sh:Number) { Flash’ta kullanacağımız fonksiyonu belirliyoruz.Fark ettiğiniz gibi sınıf ile aynı adı taşıyor. Bize kolaylık veriyor.Değişken kullanmadan sadece sınıf adı kullanarak bu fonksiyona ulaşabiliyoruz.Bunun adı Constructor’tır.
Toplam üç tane parametresi var.
- hedef:Object
sw:Number
sh:Number
ilk parametre sınıf içine göndereceğimiz objemiz(MovieClip, Simple Button, Sprite, Bitmap). ikinci parametre sahne genişliği belirliyor. Son parametre sahnenin yüksekliğini belirliyor.
4- hedef.x=Math.random()*sw; Hedef objemizin x kordinatındaki yerini belirliyor.Tek başına Math.random() satırı bize 0-1 arası rasgele bir sayı verir.Biz bu sayıyla sahne genişliğini çarpıyoruz.Bir nevi aralığı genişletiyoruz.Yani 0-sw kadar oluyor.
5- hedef.y=Math.random()*sh; Hedef objemizin y kordinatındaki yerini belirliyor.Tek başına Math.random() satırı bize 0-1 arası rasgele bir sayı verir.Biz bu sayıyla sahne yüksekliğini çarpıyoruz.Bir nevi aralığı genişletiyoruz.Yani 0-sh kadar oluyor.
6- hedef.alpha=Math.random(); Hedef objemizin saydamlığını belirliyor.Tek başına Math.random() satırı bize 0-1 arası rasgele bir sayı verir.Yeni gelen sistemle objelerin alpha değeri 0-1 arası değişiyor.O zaman tek başına Math.random(); ile rasgele saydamlığı ayarlayabiliriz.
7- hedef.scaleX = hedef.scaleY = Math.random(); Hedef objemizin büyüklüğünü belirliyor.Tek başına Math.random() satırı bize 0-1 arası rasgele bir sayı verir.Yeni gelen sistemle objelerin scale değerleri 0-1 arası değişiyor.O zaman tek başına Math.random(); ile rasgele saydamlığı ayarlayabiliriz.
Evet sınıfımız hazır.Şimdi ise Flash kodumuz:
import baloncuk;
for (var i:int=0; i<100; i++) {
var balon:Baloncuk = new Baloncuk();
addChild(balon);
new baloncuk(balon, stage.stageWidth, stage.stageHeight);
}
Burada öncelikle sınıfımızı yüklüyoruz.Daha sonra döngüye sokuyoruz.Kütüphaneden gelen her objeyi sınıf içine sokuyoruz. Çalışmamızı test ettiğinizde karmaşık ama hoş bir görüntü elde ediyoruz
Bir sonraki makalemde görüşmek üzere… Kolay gelsin…
Cevaplar
( Faydalı Cevapları Göster )
kayıtlı cevap bulunmuyor.
Etkinlikler
Toplantı
Kahraman ve need4code.com Projesi Connect Toplantısı
Kahraman ve need4code.com Projesi Connect Toplantısı
Selam arkadaslar,
Programlama ile uğraşanların hayatlarını kolaylaştıracak desktop ve web tabanlı ortak iki proje ile ilgili 3. toplantımızı 3Aralık...
Kategori:
Toplantı
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 382 (1 kayıtlı, 381 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız







