Türkçescript

Actionscript 3.0 ile objeyi kopyalamak (duplicate)

17 Ekim 2009,

[adrotate group="2" banner="1"]

Bu derste As3 kullanarak bir objeyi çoğaltacağız. Ben objeyi solda görülen alana tıklanması yoluyla çoğaltıyorum. Siz bunu bir buton aracılığıyla da yapabilirsiniz yada daha farklı teknikler kullanabilirsiniz.

Öncelikle 210×200 boyutlarında bir as3 dosyası açtım. Boş layer (katman)’ıma sahne ile aynı boyutlarda bir arkaplan ekledim. Yani tıklama alanımı belirledim.Bu arkaplanımı (background) F8 kısayolu ile Movieclip yapıyorum. İsmini back verdim.

Yeni bir layer açtım, buna da text’ imi ekledim. F8 ile Movieclip’e çevirdim ve ismini de text olarak verdim.

NOT : Bu text alanı; “bu alana tıklayınız” yazısı içindir, yani önemli değil. Sahneye tıklandığında Actionscript ile alpha değerini sıfıra indiriyorum. Ayrıca eklediğim arkaplanı yani tıklama alanını ben daha küçük tuttum ve çerçeveler ekledim. Sizde kendinize göre düzenlemeler yapabilirsiniz.

Şimdi sıra, sahneye tıklandığında ortaya çıkan turuncu renkli topu yaratmaya geldi. Yeni bir MovieClip ekleyelim (Insert / New Symbol yada CTRL + F8). İsim kısmına mc yazdım. Burada bir yuvarlak çizdim ve hafif geçişli bir renk verdim (Radial Gradient). Biraz da animasyon kattım (büyüyüp küçülme). Tekrar en üst sahneye çıkıyorum.

img1Bu yeni eklediğim mc klibi, Library’de (Kütüphane) duruyor (Eğer Kütüphane açık değilse; Window / Library yada CTRL+L). Kütüphanede mc isimli klibime sağ tıklıyorum ve açılan menüden Linkage’e tıklıyorum. Linkage Properties penceresi açıldı. Burada Export for ActionScript ‘i işaretliyorum. Otomatik olarak Export in first frame de işaretli hale geldi, ayrıca class (sınıf) olarak ta mc ismini aldı. Base class’ta da flash.display.MovieClip yazıyor. Okeyliyorum. Burada bir uyarı penceresi gelecek onuda okeyleyip geçin.

NOT : Yukarıda yaptığım; mc klibini kütüphanede, mc sınıfı ile linklemek (bağlamak).  Farklı olarak as3′te Base class yani üst sınıf’ın da belirli olması gerekiyor. Bunu, klibi (aslında sınıf) çağırdığımızda otomatik olarak kendisi üretiyor ve çağırıyor. Üst sınıfımız MovieClip sınıfı. Eğer dışarıdan .as dosyaları ile çalışıyorsanız, zaten kullandığınız sınıfları import etmeniz gerekiyor.

Evet son olarak yeni bir katman ekliyorum. Buraya ActionScript kodumu ekleyeceğim. F9 kısayolu ile actions panelimi açtım ve aşağıdaki kodu buraya ekliyorum.

addEventListener(MouseEvent.CLICK,myBall);

function myBall(e:Event):void {
txt.alpha = 0;
var newBall:mc = new mc();
addChild(newBall);
newBall.x = stage.mouseX;
newBall.y = stage.mouseY;
}

Yukarıda ilk önce olay dinleyici (EventListener) ekliyorum ki mouse tıklandığında myBall isimli fonksiyonu çalıştırayım. Neyi ne şekilde dinleyeceğini belirttim (MouseEvent.CLICK, myBall).

Bir i değişkeni yarattım, nasıl davranacağını ve neye eşit olacağını belirttim.

Daha sonra fonksiyonumu oluşturdum. Fonksiyonda; alana tıklandığında txt örnek isimli yazımın alfa değerini 0′a eşitledim. Kütüphanedeki mc sınıfı objemi newBall isimli, yarattığım değişkene atıyorum. x ve y pozisyonlarını, sahnede, mouse ile tıklama noktalarının x ve y pozisyonları ile eşitledim ve son olarak fonksiyon her çalıştığında 1 üste arttırmasını söylüyorum.

Kaynak dosyayı buradan indirebilirsiniz. Teşekkürler…

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...
:, , , , ,
5 yorum var:
  1. Volkan

    burada oluşturulan yeni mc lerin isimleri ne olur o mclere nasıl ulaşırız?

  2. Volkan

    birde sormayı unuttum i değişkeni neden tanımlanıyor. bizim için önemi nedir? cevaplarınız için şimdiden teşekkürler.

  3. admin

    i değişkeninin hiç bir anlamı yok orada unutmuşum, herhalde başka birşey deniyordum çünkü baya olmuş yazıyı yazalı.. Kaldırayım oradan onları bari.. Burada oluşturulan mc’lere bu şekilde ulaşamazsın diye biliyorum.. Ulaşmak için farklı şekilde çalışman lazım.. Bak buradaki makalede nedenleriyle tam olarak anlatılmış.. Makale ingilizcedir, herhangi bir sorun yaşarsan yazarsın..

  4. Fatih

    mrb. arkadaşlar bi konuda yardım isticem sizlerden. Tam olarak istediğim buradaki mause ile kopyalama gibi ekrana o nesnenin bir kopyasını almak;) ancak bunu çizim porgramlarını tool barı gibi düşünün. o sekilde listeli olucak nesnlere mause ile surukleyıp sahneye çektiğimde bir kopya oluşturacak. nasıl yapabilirm yardımcı olursanınz çok sevinirim:)

  5. volkan

    Verdiğin adres çok faydalı oldu teşekkür ederim. Nokta atış oldu :)

Yanıtla

İsim

Mail

Websitesi    

*

Bağlantılar!

Kendi projelerimiz ve arkadaşlarımızın projeleri...