MovieClip Nesnesi


Bu nesneye Built-in Classes--> MovieClip yoluyla ulaşabilirsiniz. Dersler bölümünde Film Klipleri alanından örneklere inceleyebilirsiniz. 30 metod içerir.Önemli olanlar tanımlanacaktır

Klipler bir animasyonun temel nesnelerindendir. Bir klibe ait 3 çeşit isimlendirme mevcuttur. Birincisi kütüphanedeki adı, ikincisi örnek adı(instance name), üçüncüsü de attachMovie yönteminde kullanılan kimlik adıdır. Bu adı tanımlamak için kütüphanedeki klip dosyası üzerine sağ klik yapılır, linkage seçeneği işaretlenir ve açılan menüden Export for Actionscript seçilerek identifier alanına kimlik adı yazılır. Veya sahnede mevcut klip işaretlenip properties panelinde instance name kısmına bir isin girilir.

MovieClip Nesnesinin Metodları

attachMovie:

Kütüphanede mevcut bir klipten kopya almak için kullanılır. Bunun için yukarda anlatıldığı gibi klibe bir kimlik adı verilmelidir. Üç argümanı vardır.

.attachMovie(identifier_adı,yeni_isim, seviye); Şayet seviye sıfır olarak verilirse sahnedeki film klibi kalkar yerini tutturulan klip alır.

duplicateMovieClip:

Sahnedeki bir klibin kopyasını almak için kullanılır. 2 argümanı vardır.

_root.klip1.duplicateMovieClip("yeni_isim",derinlik);

Kopyası alınan klibe tırnak işaretleri arasında yeni bir isim verilmelidir. Derinlik düzeyi için sıfırdan büyük rakam eklenmelidir. Sadece yukardaki komutla çoğaltıldığında sahnede bir farklılık gözükmez. Çünkü kopya aslının tam üzerindedir. Ancak mouse ile tutarak çekerseniz iki ayrı klibi görebilirsiniz. Bu nedenle setproperty komutu ile kopyanın x ve y koordinatlarını kaydırmak gerekmektedir.

getBounds:

Bir klip oluşturulduğunda daima onu çevreleyen bir dikdörtgen vardır. Sahneye yerleştirilen klibi tıkladığınızda çevresini mavi bir dikdörtgenin çevrelediğini görürsünüz. Bu çerçeve klibin sınırlarını oluşturur ve komutlarda kullanmak için x ve y referans noktalarını verir.Actionscriptte bu dikdörtgene bounds adı verilir.

getBounds yöntemiyle bir klibin referans noktaları başka bir klibe referans noktası olarak atanabilir. Bu noktalar xmax, xmin, ymax, ymin şeklindedir. Bir adet argümanı vardır.

klip1.getBounds( targetCoordinateSpace );

//Burada parantez içine klip2 yazıldığında referans noktası olarak bu klibin değerleri alınır.

getBytesLoaded:

Dışardan bir animasyon yüklenirken yüklenmekte olan klibin boyutunu öğrenmek için kullanılır. Özellikle preloader işlemlerinde kullanmaktayız. Tek başına bu komut kullanılırsa sadece toplam dosya boyutu alınır. Çünkü bilgisayar ortamı ile internet ortamında yükleme arasında büyük farklılıklar vardır. Bu nedenle getBytesTotal metodu ile beraber kullanılarak yüklenecek dosyanın yüzde cinsinden değeri bulunur.

Örnek için uygulamalar bölümüne bakınız

getBytesTotal:

Yukarda bahsedildi.

getURL:

İstenilen web adresine gitmek veya bilgi göndermek için kullanılır.

klip1.getURL( url, window, method );

// Görüldüğü gibi 3 argümanı vardır.URL kısmına http dahil web adresi, window kısmına açılacak pencerenin şekli(blank, self, top, parent) yazılır. Method bölümü şayet bilgi gönderilecekse GET veya POST olarak kullanılır.

globalToLocal ve localToGlobal:

Bir klip üzerinde bir nokta nesne oluşturulur. getBounds yöntemiyle bu nokta nesnesine atanan koordinatlar içinde bulunduğu klibin koordinat bilgisi olarak belirlenir.

Örnek için Dersler bölümünde ses dosyaları alanına bakınız

gotoAndPlay:

Klibin içinde belirlenen alana gönderilerek oynamayı devam ettirir.

Klip1.gotoAndPlay();

// Parantezler arasına frame numarası veya etiket adı (label) yazılabilir.

gotoAndStop:

Klibin duracağı alanı belirler.

nextFrame:

Oynatma başlığını bir sonraki frame`e gönderir.

prevFrame:

Oynatma başlığını bir önceki frame`e gönderir.

play:

Belirtilen klibi oynatmak için kullanılır.

_root.klip1.play();

stop:

Belirtilen klibi durdurmak için kullanılır.

_root.klip1.stop();

loadMovie:

Bir animasyona harici birswf dosyası eklemek için kullanılır. Eklenen her animasyona farklı bir derinlik düzeyi verilir. Level0 değeri verirseniz sahnedeki klip kalkar yerini yüklenen klip alır. Argüman olarak yüklenecek klibin adı ve seviyesi yazılır.

_root.klip1.loadMovie(yüklenen.swf,level1 );

loadVariables:

Flash dışındaki bir dosya ya da programa ulaşmak için kullanılır. Yüklenen değerlerin ASCII formatında olması gereklidir. Üç argümanı vardır.

İlk argüman yüklenecek adres veya dosyanın adıdır. Eğer internet üzerinden çalışılacaksa sayfanın serverdaki tam adresi yazılmalıdır. Bu özellik internet üzerinden form veya mail gibi bilgi göndermek amacı ile kullanılır. İkinci kısım yüklenecek alandır. Bunun için level veya bir klibe gönderilecekse target argümanı kullanılır. Son argüman ise bir bilgi iletilecekse kullanılan GET veya POST metodudur.

loadVariableNum(deneme.txt,0);

// Yukardaki komutla deneme.txt dosyasındaki değerler level0`ra yüklenir ve tüm animasyon boyunca etkili olur.

loadVariableNum(deneme.txt,_root.klip1);

// Burada değişken ve değerler sadece klip1`e yüklenmiştir.

removeMovieClip:

Bu yöntem duplicateMovieClip ve attachMovie yöntemlerinden biri ile yüklenen veya kopyalanan klipleri kaldırmak için kullanılır.

_root.klip1.removeMovieClip(); şeklinde kullanılır.

unloadMovie:

loadMovie veya attachMovie yöntemiyle yüklenen klipleri kaldırmak için kullanılır.

_root.klip1.unloadMovie();

startDrag:

Bir klibin fare işaretleyicisine yapışması ve onunla hareket ettirilmesi amacıyla kullanılır. İmleç ile klibin beraber hareketi ister tüm sahne isterseniz belirtilen alanlar içinde yapılabilir. 4 argümanı vardır.

.start.drag(lockCenter,left,right,top,bottom);

// lockCenter kısmına true yazarsanız imleç klibi tam ağırlık merkezinden tutar. Diğer değerleri boş bırakırsanız çekme hareketi tüm sahnede etkili olacaktır. Belli alanlarda hareket planlıyorsanız 4 yön içinde piksel cinsinden değer girmelisiniz.

stopDrag:

Önceden işaretleyiciye yapışan bir klibin yapışma işlemini durdurur. Argümanı yoktur.

_root.klip1.stopdrag();

hitTest:

İmleç veya klip gibi bir nesnenin başka bir klip ile temasının olup olmadığını test eder. Önceden gördüğünüz gibi her klibin etrafını çevreleyen dikdötgen şeklinde bir alan mevcuttur. Bir imleç veya klibin başka bir klip ile temasının olup olmadığını 2 şekilde öğrenebiliriz. Birincisi x ve y koordinatlarına göre yazılır ki bu genellikle fare için kullanılır.

onClipEvent(MouseMove){
If(this.hitTest(_root._xmouse, _root._ymouse,false)){
trace("temas oluştu");{
}
}

// Burada imleç klip üzerine geldiğinde output penceresinde temas oluştu yazısı görülecektir.

İkinci yöntemde iki klibin teması değerlendirilir. Birinci klibe şu kodları yazalım:

onClipEvent(enterframe);{
startDrag("klip1",true);
}

İkinci klibe alttaki kodları ekleyelim:

onClipEvent(MouseMove);{
If(_root.kklip1,hitTest(_root.klip2)){
trace("temas oluştu");
}
}

// Burada klip1 imleçe yapışacak ve diğer klibe temas ettiğinde output penceresinde temas oluştu yazısı çıkacaktır.

swapDepths:

Bir sahnede mevcut olan 2 klip daima farklı derinlik düzeylerine yerleştirilir. Bir tanesi daima en üsttedir ve diğer klibin üzerine yerleştirildiğinde görüntüsünü kapatır. Bu komut kullanılarak alttaki klibi diğer klibin üzerine getirebiliriz. Yani derinlik düzeyini değiştirebiliriz. Mevcut tek argümana derinlik düzeyi değişecek klibin adı veya derinlik düzeyi girilir.

on(press);{
klip1.swapDepths(klip2);
}
}

// Sahnedeki butona basıldığı an iki klibin derinlik düzeyleri değişecektir. Bu yöntem için mutlaka bir butona ihtiyaç yoktur,kliplerin kendisine de bu kodlar yazılabilir.

createEmptyMovieClip:

Verilen mevcut bir klip içinde boş bir klip oluşturur. Bu aynı attach movie klip gibidir fakat bir identifier adı eklemeye ge rek yoktur.parametre olarak yeni bir isim ve derinlik düzeyi eklenmelidir.Örnek: klip1.createEmptyMovieClip("yeni",1);

createTextField:

Verilen bir klip içinde boş bir dinamik metin kutusu oluşturur. Kullanımı:
myMovieClip.createTextField (instanceName, depth, x, y, width, height) Bu kutunun özellikleri şöyledir:

type = "dynamic",
border = false,
background = false,
password = false,
multiline = false,
html = false,
embedFonts = false,
variable = null,
maxChars = null
font = "Times New Roman"
size = 12
textColor = 0x000000
bold = false
italic = false,
underline = false
url = ""
target = ""
align = "left"
leftMargin = 0
rightMargin = 0
indent = 0
leading = 0
bullet = false
tabStops = [] (Boş dizi)

Örnek:

300*100 piksel boyutlarında , x=100 y=100 kordinatlarına kırmızı ve altı çizili formatta yazı girilmesi istenen dinamik bir metin kutusu için şu komutlar yazılmalıdır.

_root.createTextField("mytext",1,100,100,300,100);
mytext.multiline = true;
mytext.wordWrap = true;
mytext.border = false;
myformat = new TextFormat();
myformat.color = 0xff0000;
myformat.bullet = false;
myformat.underline = true;?
mytext.text = "this is my first test field object text";
mytext.setTextFormat(myformat);

getDepth:

Bu komut bir klibin derinlik rakamını almak için kullanılır.

setMask:

Şayet bir klibi başka bir klip üzerinde maske olarak kullanmak isterseniz bu komutu kullanmalısınız. klip1.setMask(daireMask); Bu örnek te daire klibi klip1 filmi üzerinde maske olarak çalışacaktır.