Konumunuz: SANALKURS.net FORUM - Türkiye'nin Online Eğitim PlatformuYazılımlarFlashActionScript (Moderatör: ttyaman)Flash'ta çok kullanılan actions scripler
Sayfa: [1] 2 3
Flash'ta çok kullanılan actions scripler
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
« : 26 Kasım 2007, 01:50:09 »
  • ttyaman
  • Yönetim Kurulu Üyesi
  • ****
  • Cinsiyet: Bay
  • Nereden:
  • Mesaj Sayısı: 754

  • Konuları:104

  •  
değişik kaynaklardan alıntıdır...

Bir Animasyonu tam ekran oynatmak icin ( durum cubugu vs. gözükmez (Ekran Koruyucular icin ideal)
Kod:
on (release){
fscommand ("fullscreen", "true");
}

sahneyi yada animasyonu normal büyüklüğünde oynatmak için
Kod:
on (release){
fscommand ("fullscreen", "false");
}


Sahne tam ekran yapıldığında nesneleri aynı oranda büyültmek
Kod:
on (release){
fscommand ("allowscale", "true");
}


Nesneleri gerçek boyutlarında göstermek
Kod:
on (release){
fscommand ("allowscale", "false");
}


Flash player a ait menuyu göstermek
Kod:
on (release) {
fscommand ("showmenu" , "true");
}


Flash player a ait menüyü gizlemek
Kod:
on (release){
fscommand ("showmenu", "false");
}


Kısayol tuşlarını pasif yapmak
Kod:
("trapallkeys", "true");


Kısayol tuşlarını aktif yapmak
Kod:
("trappalkeys", "false");


Bir program çalıştırmak
Kod:
on (release) {
fscommand ("exec", "calc.exe);
}


Programı kapatmak
Kod:
on (release)
fscommand ("quit");
}


Scane istediğin sanırım
Kod:
on (release)
gotoAndPlay ("Scane2",1); // Scane2 ( Scane adı) ,1 (Frame)
}


Çalışan Flashdan çıkmak Kullanıcı için
Kod:
on (release)
fscommand (quit, true);
}


Bir İnput dakileri vs. bi yere kaydetmesi icin kullanabilirsin. Yada Yönetici mesaj felan
Kod:
on (release){
adi="Enver";
soyadi="Sen";
yasi=1;
fscommand ("save","zp.txt");
}


Aşağıdaki örnekte farenin düğme üzerine gelmesi ile filmin 2.karesi, farenin dışına çıkması ilefilmin 1. karesi
Kod:
on (rollOver) {
tellTarget(zpik){
gotoAndPlay(2);
}}
on (rollOut) {
tellTarget(zpik){
gotoAndPlay(1);
}}


Eğer scane 2 nin 6. frane yüklendiyse 7.frame çalıştır
Kod:
ifFrameLoaded ("Scane 2", 6){
gotoAndPlay(7);
}


loadMovie ve Film Yükle( Bir konumdaki filmi istenilen level e yüklemek için kullanılır
//loadMovie(url [,konum/hedef, degiskenler ]]);

Kod:
on (release){
loadMovieNum ("xxxx.swf", 1);}


clibe alpha vermek
Kod:
on (release){
_root.zpclip._alpha=50;
}

Nesneyi görünmez yada görünür yapma
Kod:
on (release) {
_root.zpclip._visible=0; //zpclip clibin adı  0 değeri falsede olabilirdi..
}


x,y Nesnenin sol ve üst taraflarının pixel olarak sağa yada üst kısma doğru ayarlanmasını sağlar
kısacağı _x değerinin artması ile nesne sağa doru hareket eder
_y değerinin artması sonucu ise nesne yukarıya doğru hareket eder..

Kod:
on (release){
_root.zpclip2._x=100;
_root.zpclip2._y=100;
}


nesneyi %10 oranında buyultme ama olmadı
Kod:
on (press){
genislik=_root.ass._xscale;
yukleklik=_root.ass._yscale;
genislik+=10;
yukseklik+=10;
_root.zpmc.xscale=genislik;
_root.zpmc.yscale=yukseklik;
}


Dönder 20 derecelik açılarla
Kod:
on (press){
donme=_root.zpmc._rotation;
donme+=20;
_root.zpmc._rotation=donme;
}


o butonun +9 u ile her biri ayrı rengde ve ayrı yerde çıkartıyo Ama çalışmıyor
Kod:
on (press){
for (var i=0;i<9;i++){
zmpc.duplicateMovieClip("zmpc"+i,i);
_root["zmpc"+i]._x=Math.floor(Mathrandom()*200);
_root["zmpc"+i]._y=Math.floor(Mathrandom()*200);
top_rengi= new Color (_root["zmpc" add +i]);
kirmizi = Math.floor(Math.random()*225);
yesil = Math.floor(Math.random()*225);
mavi = Math.floor(Math.random()*225);


rengi uygula
Kod:
top_rengi.setRGB(kirmizi*65536 + yesil*256 + mavi);
}
}


Tıkladğında Buton yapışır eline Mouse onunla beraber hareket eder
Kod:
on (press) {
startDrag(this, false);
}


Tuş bırakıldığında sürüklemeyi ( Taşımayı ) sona erdir
Kod:
on (release){
stopDrag();
}


İkisini bi kullan Taşı Bırak ( Açılır kapanır Menü Hesabı
Kod:
on (press) {
startDrag(this, false);
}
on (release){
stopDrag();
}


Bir şeyi istediğin yere taşı bırak olmassa geri gelsin harf oyunu gibi
Eğer ihtiyacın olursa AS 197 den okuyabilirsin AS 1.0 Boş oluncada oku..


Açıklama Örneğin i++ Bunun anlamı i yi coğalt i-- i yi azalt Enver++ cogalt...

Bunlar bitince AS 1.0 sayfa 216 da preLoading var onu çalış

Bir txt deki yazıyı swf ye getirtmek zahmetsiz + bunu yukarı assagı oynatmak aynı sagdakı gıbı mouse well yada
tuş ile yukarı aşağı oynatmak açıklayıcı bilgiler için ideal. ve sürekli değişiyorsa haber bölümüde olabilir

Sahneye 1 tane metin kutusu çiz bunun buyuklugu kadar alanın ıcınde olacak yazılar. Bunun adını Metin_kutusu yap (mesela yani)
Sonra bunu Dynamic metin kutusuna cevir ve Multiline olarak yap ( single line multiline ) sonra aynı klasor e bir tane txt yap
isminide deneme.txt olarak degiştir. Şimdi altına bi tane buton çiz buton yaptıktan sonra as sine geç (Yukle
buton):
 
Kod:
on (release){
loadVariables ("deneme.txt","");
}
Silmek İçin (sil botonuna yaz);
on (release){
_root.metin_kutusu="";
}


Yukarı Çıkartmak ıcın ( (Efect) bi tane buton çiz dynamic in sagına Yukarı butonu olsun bu
Kod:
on (press){
metin_kutusu.scroll--;
}

Aşagı indirmek icin( (Efect) bi tane buton çiz dynamic in sagına asagi butonu olsun bu
Kod:
on (press){
metin_kutusu.scroll++;
}


istersen bunları mouse ustune gelınce de yaparsın, istersen sole bisi yap uo bolumu skiller
64 tane buton olsun her birine tıklayınca dier skiil i aynı ekranda gostersin (;
Ama atıyorum Anatomy skill ine tıkladıgında yazıların karısmaması için 68 skill in adresini yazacaksın sılecek hepsini tek tıklamaya
Neden mi bole bı ona tıklar bı buna sonra yazılar karısır

Kod:
on (release){
_root.Swordsmanship="";
}
on (release){
_root.Healing="";
}
on (release){
_root.Mage="";
}
on (release){
_root.Poisoning="";
}


alt taraf ekrana gelecek yazı yukarısı silinenler
Kod:
on (release){
loadVariables ("Anatomy.txt","");
}


Ve yukarı cıkartmak asagı ındırtmek ıcın 64 skillin adınıda yazmak gerekıyor.  aşagıdakı gıbı Yukarı Buton
Kod:
on (release){
Anatomy.scroll--;
}
on (release){
Mage.scroll--;
}
[b]aşagı ındırmek ıcın [/b]
on (release){
Anatomy.scroll++;
}
on (release){
Mage.scroll++;
}


İstediğin Frame de istediğin kadar bekletmek icin verilen kod 4sn bekler 
Kod:
stop();
basla=function(){
clearInterval(zamanlama);
play();
}
zamanlama=setInterval(basla,4000);

Kütüphanedeki 1 mc çalıştırmak  
Kod:
on (press){
_root.attachMovie("yuvarlak", "yuvarlak_mc",-11);
mc nin adı yuvarlak mc sonra yuvarlak_mc olarak kopyalıyo atıyo ekrana
Kod:
_root.yuvarlak_mc._alpha = Math.random () *100;
_root.gotoAndPlay (5);
}


Yukardaki tuşa basıldıgı anda kütüphanede duran "yuvarlak" adlı movieClip i" 1 tane kopyalayarak ismini
"yuvarlak_mc" olarak değiştirir ve sahnede 1 yer belirleyerek o kısımda çalıştırır

Kod:
_root.attachMovie("yuvarlak", "yuvarlak_mc",-11);

üçüncü satırda her çalışmasında o mc ye
kafasına göre alpha ( saydamlık verir random

Kod:
_root.yuvarlak_mc._alpha = Math.random () *100;


Kütüphanedeki 1 mc yi çağırdıgında ( mc nin adı yuvarlak_mc ) Çağırdığın mc nin istediğin yerden cıkması ıcın
Kod:
_root.yuvarlak_mc._x = 150;
_root.yuvarlak_mc._y = 150;


çağırdığın mc yi istediğin frameden başlatmak için
Kod:
_root.yuvarlak_mc.gotoAndPlay (5);


Frame Hızını arttırma ve düşürme
2.si setinterval komutu ile bu işi yapabilirsin... istediğin movie clip'i istediğin hızda oynatabilirsin....örnek kodlar aşağıda

Kod:
MovieClip.prototype.gogo=function(fps){
clearInterval(this.fps_id);
this.fps_id=setInterval(function(id1){
with(id1) {
if(_currentframe==_totalframes) clearInterval(id1.fps_id)
else gotoAndStop(_currentframe+1)
}updateAfterEvent();
},1000/fps,this);
}


mesela burada "mc1" bir movie clip mc1 24 frame hızıyla hareket ediyor...
mc2 de bir movie clip oda 30 frame hızıyla hareket ediyor......umarım anlatabilmişimdir.....

Kod:
mc1.gogo(24);
mc2.gogo(30);


 
as yükletme ve çalıştırma
#include komutunun bulundugu satırda, açıklamalarda dahil olmak üzere başka hiçbir ifade bulunmamalıdır. Class dosyasını yükle anlamına geliyor

Kod:
#include "hariciDosya.as"

yukardaki örnekte, #include komutu ile aynı satırda bir açıklama kullanılmıştır. Fakat bu bir
hatadır ve bu nedenle harici script dosyası Flash movie içine yüklenmeyecekdir. Düzgünü aşağıda


Kod:
on (press){
#include "Linker.as" //linker script dokumanının adı
getUrl(link_1,"_blank");
gotoAndPlay(frame_1);
}


Dizi Array Değişkenleri ( Bir değişkenin içinde birden fazla veri saklamak icin " new Array (); " değeri kullanılır.
Örnek :


Kullanici = new Array ();
Kullanici
  • ="Savaş"
Kullanici [1] ="Tekin"
Kullanici [2] ="Numan"
Kullanici [3] =" Sedat"

örnekte görüldüğü gibi önce "new" operatörü ile yeni bir dizi değişken Array nesnesi oluşturuluyor ve oluşturulan nesne
" kullanici " değişkenine atanıyor. " kullanici " değişkeni, artık dizi değişken olduğu için birden fazla değer
taşıyabilir.
Bu değişkenin sonuna yada başına sonradan bir ilave yapmak istenilirse -- kullanici.push"("ıvır", "zıvır"); -- olarak ekle bu
sonuna yazar başına yazmak istenilirse komut --Kullanici.unshift("zıvır", "ıvır");
Bir dizi değişkenin varolan öğelerini kopyalayarak yada yenni öğeler ekleyerek de yeni bir Array nesnesi oluşturabilirsiniz
Kullanici.concat(ıvır,zıvır); kullanici adı adında belirtilen dizi değişlkenin kopyasını alır ve değer parametresinde belirtilen yeni öğeleride ekleyerek, dönen sonucu yeni bir dizi değişkene atar.
 
Kullanici1 = [1,2,3,4,5];
Kullanici2 = [6,7,8,9,0];

tum_kullanici = Kullanici1.concat(kullanici2);
örnekte kullanici1 dizi değişkeninin öğeleri 1,2,3,4,5, ve kullanici2 dizi değişkeninin öğeleri ise 6,7,8,9,0 dır.
concat metodu ile kullanici1 dizi değişkeninin öğeleri, kullanici2 dizi değişkeninin öğeleri ile birleştirilmiştir.
bu durumda ortaya yeni bir dizi değişken çıkmış ve bu dizi değişkenin, tum_kullanici değişkenine atanmıştır. Bu durumda
tum_kullanici dizi değişkeninin değeri şu şekilde olacakdır.
 
0:1
1:2
2:3
3:4
4:5
5:6
6:7
7:8
8:9
9:0
 
Bu metod kullanilirken kullanici1 ve kullanici2 dizi değişkenlerinde bir değişiklik olmaz "copy paste" hesabı*\
Bu dizilerden Öğe çıkartma yada silme
Kod:
kullanici = new Array ("Beyinsiz", "Salak", "Odun", "Aptal");
delete kullanici[1];
bu komut ile yukardaki dizi değişkeninin içindeki 1 numaralı ( Salak ) kelimesi silindi.
Salak silindi Çünkü : Salak 1 Numara dizilerde 0 dan başlıyo yada öle bişi emin deyilim.

Bu dizilerdeki ilk öğeyi silmek icin ayrı bir yol var ( 0 ) numaralı öğeyi
Kod:
kullanici = new Array ("Funda", "Ulaş", "Ebru");
kullanici.shift();
Funda silindi geriye Ulaş ve Ebru kaldı.

Bu değişkeni istersen başka bi yere atıyabilirsin ornek :
Kod:
kullanici = new Array ("Funda", "Ulaş", "Ebru");
SilinenKullanici = kullanici.shift();
böylece shift (); ile silinen kullanıcı " SilinenKullanici " değişkenine taşındı.

Delete ile silindiği zaman sıra numaraları değişmez 0,1,2,3 diye kalır shift(); ile silindiginde
kayar 0 numaralı olanı siler 1 numara 0 olur sıra ile kayar

shift (); olayının tam tersi pop(); dur bu da sondaki öğeyi siler.
Kod:
kullanici = new Array ("Funda", "Ulaş", "Ebru");
kullanici.pop();//Ebru silindi

Aynı shift (); deki gibi silinen öğeyi başka bi değişkene atayabilirsin. ( Kes Yapıştır hesabı )
 
Kod:
kullanici = new Array ("Funda", "Ulaş", "Ebru");
SilinenOge = kullanici.pop();
öğeyi kullanicidan kesip "SilinenOge" ye yapıştırdık.

Dizi lerde kullanılan "1 taşla 2 kuş" yöntemiymiş splice (); metodu
kullanici.splice(baslangic,silinecekOgeNumaraları,EklenecekOgeler,);

Kod:
kullanici = new Array ("Funda", "Ulaş", "Ebru");
kullanici.splice (1,2, "Murtaza", "Demet");
Sonuç : 1 ve 2 numaralı öğe silindi ve sona "Murtaza ve Demet" eklendi.
kullnici = ("Funda", "Murtaza", "Demet");


Array nesnesinin sort(); metodunu kullanarak, istediğiniz bir dizi değişkeninin öğelerini alfabetik sıraay göre düzenleyebiliriz
Kod:
[code]isimler = new Array ("Murtaza", "Ahmet", "Onder", "Mehmet");
isimler.sort();
Aşağıdaki şekilde dizer
0= Ahmet
1= Mehmet
2= Murtaza
3= Onder

Kod:
isimler.sort(-1);
bu şekilde olursa ters dizilir z-a ya

Fonksiyonlar ( Funcsitons )

Ne dir ? = Hemen hemen her projenizde mutlaka tekrarlayarak yapmanız gereken işlemler bulunur. Kodları kopyalayıp yapıştırmak yada kodları tekrar yazmak sizin icin tek çözüm gibi görünebilir. (ame deil )
Diyelim ki; aşağıdaki satırı en az 15 movie clip sembol ıcın kullanmanız gerekiyor.

movieClip_mc._x = 50;
Sonradan bu değeri 70 olduğunu düşün felan filan.... ( böle bi işe yarıyo ama tam anlamadım tekrar çalış bu konuya )

Funcitonlar bir kere tanımlanırlar ve tüm Flash move içinde kullanılabilirler. Fonksiyon tanımlanın iki farklı yolu var.
Her iki durumdada function anahtar sözcüpü kullanılır.

Kod:
function fonksiyonAdı () {
yapılacak işler ;
}


ya da ;

Kod:
fonksiyonAdı = function (){
yapılacak işler;
}


Yukarıda görüldüğü gibi her fonksiyonun bir adı olur ve gerektiğinde fonksiyonu tanımladığımız bu adla fonksion
çağırabiliriz.

Fonksiyon adı tanımlanırken değişkenlerde olduğu gibi aşşağıdaki kurallara uymalısınız ;

1. Fonksiyon adları içinde boşluk kullanılmaz.
function özellik ayarla (){}hatalı fonksiyon adı tanımlaması
2. Fonksiyon adları sayı yada özel karakterlerle başlayamaz.
function 2lestir(){}
hatalı fonksiyon adı tanımlaması

3. Anahtar sözcüklerden biri, ( return, function gibi ) Fonksiyon adı olarak kullanılmaz.
funciton new (){}
hatalı fonksiyon adı tanımlaması

Çağırılan fonksiyon, bloğuna ait olan satırı çalıştırır ve fonksiyon bitiminde çağrıldığı satıra geri döner.

Örnek Fonksiyon ;

Aşağıdaki fonksiyonu Timeline 'da ilk Frame 'ye ekleyin.
Kod:
deneme = function (){
trace ( "Şu an fonksiyon içindesiniz" );
}


Bir buton sembol oluşturun ve buton sembole aşşağıdaki kodu ekleyin.
 
Kod:
on (press){
trace ( "Şu an buton içindesiniz" );
deneme ();
trace ( "Şu an tekrar buton içindesiniz" );
}

Olmadı function ();forumlarda bi sor bakak hata nirde
Hata tamamdır _root. ekledim sorun kalmadı. dorusu aşağıda


Kod:
on (press){
trace ( "Şu an buton içindesiniz" )
_root.deneme ();
trace ( "Şu an tekrar buton içindesiniz" )
}

Kısacası cok kullandıgın bi a.s ye function ozelligi ver sadece adı ile cagır her kodla yapma bu işi diyebiliriz...

Not = Daha önce tanımlanmış bir fonksiyonu daha sonra kullana biliriz. Tanımlanmamış bir fonksiyonu kullanamassın önceden
Örn ; 2 inci frame de tanımlanmış bir fonction u 1 inci framede kullanamassın 1 incide tanıtıp 2 incide kullanabilirsin.

Eğer bir fonksiyonu yol belirtmeye gerek kalmadan tüm timeline larda kullanmak istersek fonksiyonu global olarak tanımlamanız
gerekmektedir.
Aynı değişkenlerde olduğu gibi _global tanımlayıcısını kullanarak istediğimiz bir fonksiyonu, global tanımayabılırız.

Kod:
_global.fonksiyonAdı = function (){
yapılacak işler;
}


_root. gibi ama onun ulaşamadığı yerlere ulaşıyo gibi düşünebiliriz. Çok kullandıgın gerekli yada sık kullandıklarını global tanımla

Fonksiyonlara veri gönderme

Kod:
functionAdı = function (){
daire. _x= 50
daire. _alpha= 50;
}


Instance Name ini " daire " yaptım oldu
Kod:
functionAdı = function (movieclip,x,alfa){
movieclip. _x.= x
moviclip. _alpha= alfa
}


Ney?

functionAdı ("daire", 50, 80);

yukardaki functionAdı diye tanımladığımız fonksiyonu çağırarak " daire " instance name referansına sahip mc nin _x pozisyonunda
( 50 ), _alpha özelliği ise 80 ' e ayarlanmasını sağlıyoruz
sanırım kütüphanedi mc yi çağırırken kullanıyoruz.[/code]
« Son Düzenleme: 12 Nisan 2008, 20:20:58 Gönderen: ttyaman »
Logged
« YANITLA #1 : 26 Kasım 2007, 01:55:34 »
  • ttyaman
  • Yönetim Kurulu Üyesi
  • ****
  • Cinsiyet: Bay
  • Nereden:
  • Mesaj Sayısı: 754

  • Konuları:104

  •  
getTimer()

getTimer () fonksiyonu Flash movie'nin Flash Player içinde gösterildiği andan itibaren geçen süreyi milisaniye olarak verir.

getTimer () fonksiyonu ile Flash movie'nin çalışma zamanı alınarak baslangic değişkenine atanıyor. Flash movie oynatılmaya başlayalı eğer 2 saniye geçti ise başlangic değişkeninin alacağı değer 999 milisanie *2 saniye = 1998 milisaniye olacaktır.

Kod:
_root.onClipEvent = function (){
sure = getTimer () /999
if (sure > 10){
_root.daire._vixible = false
}
}


Yukardaki örneğe göre, Flash movie'nin Flash Player içinde görünmesinden 10 saniye sonra ana sahne üstündeki daire instance name referansınsa sahip movie clip sembol görünmez olacaktır. Bu örnekten yola çıkarak getTimer () fonksiyonu ile zamanlanmış görevler hazırlayabilirsiniz.

Not = Flash Player 6 ve sonrası için getTimer () fonksiyonu yerine setInterval () fonksiyonunu kullanarak zamanlanmış görevler oluşturabilirsiniz. setInterval () fonksiyonu kullanarak oluşturulan zamanlanmış görevler, getTimer () a göre daha işlevsel olacaktır.

Kod:
gorunmezYap = function (mc){
mc._visible = false;
clearInverval (gorunmezInverval);
};
gorunmezInverval = setInterval (gorunmezYap,1000,_root.daire);


Koşullu ifadeler ( Condition Expressions )

if = Bir deyimin çalıştırılmasını, bir koşula bağlamak istiyorsanız, if deyimini kullanabilirsiniz. if deyimi;

if (koşul) {
Koşulun gerçekleşmesi durumunda yapılacak işler;
}

else = else deyimi if deyimi ile birlikte kullanılır ve if deyimi belirtilen kuşulun gerçekleşmemesi durumunda
çalıştırılacak satırları belirlemenize olanak sağlar.
else deyimi;

if (koşul){
Koşulun gerçekleşmesi durumunda yapılacak işler;
} else {
Koşulun gerçekleşmemesi durumunda yapılacak işler;
}

Kod:
if (yas>=35){ // yaş 35 veya 35den büyükse
trace ("İkinci baharı yaşıyor ömrüm");
} else { // değilse ( yaş 35 den kücükse )
trace ("Daha ömrümün baharındayım");
}


else if = else if deyimi, if deyimi kullanılır ve bir if deyimi ile birlikte birden fazla koşulu kontrol etmesine olanak sağlar.

Kod:
if (derece<=0){
trace ("Hava 0 ın altında");
} else if (derece>0 && derece <20){
trace ("Hava 0 ile 20 derece arasında");
} else if (derece>20 && derece<30){
trace ("Hava 20 ile 30 derece arasında");
} else if (derece>30){
trace ("Hava 30 derece yada üstünde");
}


Eğer else if yerine, if deyimini kullanırsanız birbirinden bağımsız olarak hareket eder. Kısacası yukardaki koda göre düşünürsek;
Havanın 35 derece olduğunu farzedelim. ( ve kodları 0 ın üstünde 10 un üstünde 20 nin üstünde 30 un üstünde olduğunu varsayalım)
Yukardaki kodla çıkacak sonuc trace ("Hava 0 ın üstünde") olacakdır. Eğer if deyimini kullanırsak sadece cıkacak sonuc
Hava 0 ın üstünde
Hava 10 un üstünde
Hava 20 nin üstünde
Hava 30 un üstünde

olacakdır bunun nedeni " if " deyimi birbirinden ayrı çalışır. " else if " deyimi bir bütün ilkinde sonucu alamazsa ikinci satıra geçer oradada alamassa 3 üncü satıra gecer...

switch, case, default

Flash Mx versiyonu ile gelen switch deyimi, kullanılarak tıpkı if deyiminde olduğu gibi, script akışını kontrol etmek amacı ile kullanılır.
Örnek ;

Kod:
switch (sayi){
case 0:
gotoAndPlay (5);
break;
case 1:
gotoAndPlay(12);
break;
case 2:
gotoAndPlay (17);
break;
}


Yukardaki örnekte anlatılan = switch deyimi ile sayı değişkeninin değeri kontrol ediliyor. Eğer sayı değişkeninin değeri 0'a eşitse gotoAndPlay (5) satırı çalışacak ve Flash movie 5. frame'ye giderek oynatacak. 1'e eişte gotoAndPlay(12) satırı çalışacak ve Flash movie 12. frame 'ye giderek oynayacak. 2' ye şitse gotoAndPlay(17) satırı çalışiacak ve Flash movie 17. frameye giderek oynayacaktır.

Bir switch deyimi, case ile belirlenenuygun ifadeye rastladıktan sonra geriye kalan tüm kod bloğunun çalıştırılmasına devam edecektir. Bunu önlemenin tek yolu konu başlığındaki break deyimini kullanmak olacaktır. case lerin altına koyarsan buldugunda çalıştırmayı durduracaktır.

Kod:
switch (sayi){
case 0:
gotoAndPlay (5);
break;// <------- sayımız 0 diyelim dier dizinler çalışmaz
case 1:
gotoAndPlay(12);
break;
case 2:
gotoAndPlay (17);
break;
}
--- " ?: " deyimi ---
?: bu deyim hemen hemen if deyimi ile aynı işlevi görür bir if deyimi ile yaptığımız kodu ?: na cevirirsek ?: deyiminin
daha kullanışlı ve kod olarak daha az yer kapladığını görebilir
" if Örnek " ;

Kod:
giris = true;
if (giris == true ) {
gotoAndPlay ("oynat");
} else {
gotoAndPlay ("durdur");
}


" ?: " Örnek :

Kod:
giris = true;
git = giris ? "oynat" : "durdur";
gotoAndPlay(git);
« Son Düzenleme: 21 Nisan 2008, 10:22:24 Gönderen: ttyaman »
Logged
« YANITLA #2 : 26 Kasım 2007, 02:51:10 »
  • ttyaman
  • Yönetim Kurulu Üyesi
  • ****
  • Cinsiyet: Bay
  • Nereden:
  • Mesaj Sayısı: 754

  • Konuları:104

  •  
Döngüler ( Loops ) ve Sonsuz Döngüler
Script akışı boyunca, bazı satırların belli bir şart gerçekleşinceye kadar çalışması gerekebilir. Örneğin; bir movie clip
sembolü duplicateMovieclip() fonksiyonu ile 10 kere kopyalamak gibi durumlarda, döngüleri kullanarak birden fazla
tekrarlanan işleri, bşr kaç satırlık kod ile halledebilir ve böylece uzun kod karmaşasından kurtulabiliriz.

ActionScript ' de her birinin birbirinden farklı işlevi olan while, do..while, for ve, for...in döngüleri bulunur. Bu
döngüleri ihtiyaca göre kullanarak, tekrarlanması gereken işleri, bşrkaç satırlık kod la kolayca halledebiliriz.

while döngüsü

Kod:
while (koşul){
yapılacak işler;
}

şeklinde kullanılır. Koşul paremetresinde belirtilne ifade, true değerini döndürdüğü müddetçe, döngü tekrar başlayacak.
Örnek 1 =
Kod:
i = 0;
while (i<10){
trace ("i değişken değeri 10 sayısından kucuk");
}


Yukardaki örnekte sonsuz bir döngü var çnki sayı asla 0 dan büyük olmuyor
Örnek 2 =
Kod:
i = 0;
while (i<10){
trace ("i değişken değeri 10 sayısından kucuk");
i++;
}

Örnek 2 deki ne göre ekrana gelecek cıktı sayısı 9 tanedir çnki her seferinde 0 sayısına + 1 ekliyor..

Örnek 3 =
Kod:
i = 0;
while (i<10){
getURL("http://www.sanalkurs.net", "_blank")
i++;
}


Örnek 3 deki koda göre i değişkeni 10 değerini alana kadar 10 tane Değerli ziyaretçimiz
Linki görebilmek için Lütfen Üye Olunuz veya Giriş Yapınız
www.sanalkurs.net
adresi açılacaktır.

Örnek 4 =
Kod:
i = 0;
while (i<10){
getURL("http://www.sanalkurs.net", "_blank")
}


Yukardaki kodlamaya göre düşünürsen sürekli Değerli ziyaretçimiz
Linki görebilmek için Lütfen Üye Olunuz veya Giriş Yapınız
www.sanalkurs.net
adresi açılacak buda sonsuz döngüye girer.
Yanlış yada eksik tanımlanan bir kod sonsuz döngülere neden olabilir.

do..while

while döngüsünde, önce koşul kontrolü yapılıyor ve eğer koşul true değerini döndürürse döngü içindeki deyimler
çalıştırılarak, döngüde şart kontrolü için döngü tekrar başlatılıtordu.
do..while döngüsünde ise önce döngü içindeki deyimler çalıştırılmakta ve daha sonra loşul kontrol edilmektedir. Buna
göre, koşulun ilk döngüde true değerini döndürmesi durumunda bile, do..while döngüsü. gloğundaki satırlar en az
bir kere çalıştırılmış olacakdır. ( koşul doğru oldugu müddetce yapılan iş devam ediyor, taki koşul false olana kadar)
Kod:
do {
yapılacak işler;
}
while (koşul);

i = 0;
do {
trace (" i değişken değeri 0 sayısından küçük");
i++;
} while (i<0)


Örnekte ilk satırda 0 değerine sahip i değişkenini tanımlıyoruz. Sonraki satırda ise do..while döngüsünü kullanarak döngünün
devamı için i < 0 ( yukardakini calıstırdıgımızda output penceresınden trace cıktısını alacağız halbuki döngünün
çalışması icin ortada hic bir şart yok.

Örnek 2 =
Kod:
i = 0;
do {
trace ("i değişkeninin değeri 5 den küçük");
i++
} while (i<5)
örnek 2 de bu sefer 5 tane yazı cıktısı alacaksınız. tıpkı while döngüsündeki gibi

Sonsuz bir döngüyü önlemek için while döngüsünde olduğu gibi, do..while döngüsünde de koşulu yerine getirecek yapının
döngü içinde olması gerekmektedir.

for

for döngüsü tıpkı while döngüsü gibidir ve çalışma mantığıda aynıdır. Belirtilen koşulun true değerini döndürmesiyle
döngü içindeki deyimler çalışacak ve döngü, koşul kontrolü için tekrar başlayacaktır.

Kod:
for (değişken; koşul; sayaç){
yapılacak işler;
}


Örnek 2 =
Kod:
for (i=1; i<10; i++){
trace ("i değişkeni 10 sayısından küçük ( +1 eklendi ) " );
}

for...in

Aslında, for...in döngüsünü anlamak için nesne kavramnını bilmeniz gerekmekte. for...in döngüsü, bir nesne içindeki tüm
özellikleri ayırmak ve nesne içindeki özellikler son bulana kadar döngü bloğu içindeki satırları çalıştırmak için kullanılır.

Kod:
for ( değişken in nesne ) {
yapılacak işler;
}


for...in döngüsünün sözdizimi yukardaki gibidir. Bir for...in döngüsünde, nesne alanında belirtilen nesne içindeki tüm
özellikler döngünün devamını sağlar. Buna göre bir nesne eğer 5 özellik taşıyorsa for...in döngüsü de beş kez tekrarlanacak
ve her döngüde nesnenin o anki özelliği değişken değeri ne atanacaktır. Bu sayede değişken alanında belirtilen değişken adı ile nesnenin o anda taşıdığı özelliğin değerine döngü içinde ulaşabilirsiniz.

yeni bir nesne tanımlanıyor
Kod:
program = new Object ();

nesnenin özellikleri tanımlanıyor
Kod:
program.Uretici = "Macromedia";
program.Ad = "Flash";
program.Versiyon = "Mx 2004";

for...in döngüsü kuruluyor
Kod:
for ( ozellik in program ) {
trace (ozellik + "özelliğin değeri" + program[ozellik] );
}

Alınan çıktı aşağıda ;
Versiyonözelliğin değeriMx 2004
Adözelliğin değeriFlash
Ureticiözelliğin değeriMacromedia
( Tam anlamadım )); )

Dögüleri kontrol Edin: continue ve break
- break -

break deyimi, döngünün sonlandırılmasını ve script içinde döngü bitiminden hemen sınraki satıra geçilmesini sağlar.

break;
şeklinde kullanılır ve hiç bir parametresi yoktur. break deyimini gören döngü kendini sonlandırır. break deyimi döngü
içinde genellikle if deyimi ile aşağıdaki gibi kullanılır.

Kod:
i = 1;
while (i<10) {
if ( i == 5 ){
break;
}
trace (" döngü devam ediyor. i=" +i);
i++;
}

Yukardaki döngüye göre i değişkeninin değerinin 10 olmasıyla döngünün sona ermesi gerek. Fakat burada bşr istisna var
Eğer, i değişkeninin değeri 5'e eşitse true değerine dönecek ve böylece if deyimi bloğuna ait olan break deyimini çalıştıracaktır. Böylece döngü şartı olan i değişkeni 10'a edit olmadığı halde break deyimi ile döngü sonlanacaktır. Yukardaki kodu çalıştırdığımızda trace fonksiyonu ike output panelinden dört kez çıktı alırız. Çıktı aşağıda

döngü devam ediyor. i=1
döngü devam ediyor. i=2
döngü devam ediyor. i=3
döngü devam ediyor. i=4

döngü içinde istediğimiz bir şartın gerçekleşmesi durumunda break deyimini kullanarak, döngüyü sonlandırabiliriz.

continue
Continue deyimi istisnai durumlarda döngü içindeki satırları çalıştırmayı durdurarak, döngü koşulunu tekrar kontrol
etmek üzere döngünün tekrar başlatılmasını sağlar. Aşşağıdaki gibi kullanılır ve hiçbir parametresi yoktur.

continue;

Döngü bloğu içinde. continue deyiminin kullanıldığı satırdan sonra bulunan satırlar çalıştırılmayacaktır.
continue deyimi, her döngü için farklı eylemler uygular.

while döngüsüyle kullanımında, koşulun kontrolü için döngü başına döner.
do...while döngüsüyle kullanımında, koşulun kontrolü icin döngü sona gider.
for döngüsüyle kullanımında, döngü başa döner ve döngü sayacı güncelleştirilerek, koşul kontrol edilir.
for...in döngüsüle kullanımında, belirtilen nesnenin varsa bir sonraki özelliğinden devam etmek üzere döngü başa döner.

Kod:
for ( i = 1; i<5; i++){
if ( i ==2){
continue;
}
trace (i);
}

Çıktısı aşağıda

1
3
4

Normalde 1,2,3,4,5 cıktısının alınması gerekmektedir. Fakat burada istisnai bir durum söz konusudur. if deyimi ile tanımlanmış Bu da i değişkeninin 2 sayısına eşit olduğu andır. i değişkeninin değeri 2 sayısına eşit olduğunda continue deyimi devreye girerek trace fonksiyonunun çalışması öncelenecek ve sayacı bir arttırarak koşulu kontrol etmek üzere döngü başına dönecektir. Bu durumda output panelinden alınacak cıktı 1,3,4 olacaktır. Görüldüğü gibi, 2 sayısıOutput panelinden alınan çıktıda yer almıyor. Çünki; continue deyimi, döngü içinde kendinden sonra gelen satırların çalışmasını önlemektedir.

Kod:
i= 1
while (i<5){
if ( i==2){
continue;
}
trace (i);
i++;
}


Yukardaki örnekte ise tıpkı for döngüsü örneğinde olduğu gibi i değişkeninin değeri 5 sayısından küçük olduğu müddetçe while
döngüsü devam edecektir. i değişkeninin değeri 2'ye eşit olduğunda continue deyimi devreye girecek ve kendinden sonra gelen
satırların çalışmasını önleyecektir. Bu durumda ++ öperatörüyle değeri bir arttırılmayan i değişkeninin değeri hep 2 kalacaktır
Bu nedenle i değişkeninin değeri hiç bir zaman 5 sayısından büyük olmayacağı için döngü sonsuz bir döngü olacaktır.
Not = Bu nedenle continue deyimini kullanığımız satıra dikkat etmemiz gerekir.
« Son Düzenleme: 28 Mart 2008, 11:26:32 Gönderen: ttyaman »
Logged
« YANITLA #3 : 03 Aralık 2007, 17:57:06 »
  • siracel
  • Siracel
  • Site Yöneticisi
  • *****
  • Böyle biri varsa bile o böyle biri değildir.
  • Cinsiyet: Bay
  • Nereden: İstanbul
  • Mesaj Sayısı: 1881

  • Konuları:161

  •  
yaman, bu bilgiler çok güzel, bunları bölerek uygun başlıklar altında dersler kısmına ekleyebilirsen iyi olur. Kaynağını da belirtirsin gerekirse, çok lüzumlu bilgiler çünkü. eline sağlık bu arada Göz kırpan
Logged

1- Forum dili Türkçe'dir. Türkçe olmayan saçmasapan kelimelerle lütfen mesaj yazmayın (pls, help vs.) Bu tür mesajlarınız silinir.
2- Özelden lütfen soru göndermeyin, forumdaki ilgili alana yazın.
« YANITLA #4 : 06 Aralık 2007, 11:42:57 »
  • Marfan
  • Aktif Üye
  • ***
  • Cinsiyet: Bay
  • Nereden: Kahramanmaraş
  • Mesaj Sayısı: 181

  • Konuları:20

  •  
  • WWW
Çok güzel paylaşım paylaşım için teşekkürler
Logged
« YANITLA #5 : 29 Aralık 2007, 12:27:23 »
paylaşım için teşekkürler  Göz kırpan
Logged
« YANITLA #6 : 28 Ocak 2008, 01:13:47 »
1000 lerce teşekkür... Göz kırpan
Logged
« YANITLA #7 : 17 Şubat 2008, 17:43:11 »
  • ATES
  • Destekçi Üye
  • **
  • Nereden:
  • Mesaj Sayısı: 30

  • Konuları:14

  •  
Paylaşım için teşekkür ederim...
Ama bir sorum olacak bu kodları flash ın  hangi sahnesinde, hangi leyerında, yada hangi objenin action siprite ne koyacağız bunula ilgilide bilgi verirseniz sevinirim.
Logged
« YANITLA #8 : 17 Şubat 2008, 18:14:26 »
  • Murat Korkmaz
  • Site Yöneticisi
  • *****
  • İmpossible is nothing..!
  • Cinsiyet: Bay
  • Nereden: Bilgisayarın derinliklerinden
  • Mesaj Sayısı: 2086

  • Konuları:113

  •  
  • WWW
paylaşımın için teşekkürler ttyaman.Forumda özellikle flashı tam ekran yapmayla ilgili bir çok soru geliyordu,üyelerimizin direk faydalanabilecekleri bir şekilde olmuş,sağol. Göz kırpan
Logged

Değerli ziyaretçimiz
Linki görebilmek için Lütfen Üye Olunuz veya Giriş Yapınız
« YANITLA #9 : 02 Mart 2008, 14:33:25 »
  • mucahid1986
  • Ziyaretçi
arkadaşım cok yararlı olmuş ellerine sağlık
Logged
« YANITLA #10 : 07 Mart 2008, 18:43:33 »
Cok güsel paylası teşekkürler :)bu sene projemiz var ve flashta oyun yapıcaz..Çİzim filaan hersey hazır ama oyun mantıgını ve bilmioruz..Yardımcı olursanız cok memnun oluruz...
Logged
« YANITLA #11 : 07 Mart 2008, 19:17:33 »
  • Quadim
  • Yönetim Kurulu Üyesi
  • *****
  • Nereden: Bostanlı / Karşıyaka / İzmir
  • Mesaj Sayısı: 1426

  • Konuları:30

  •  
Saolsın paylaşımlar için
Logged

2007 MCSE + M+S
2007 MCPD
Windows Server 2000 Experts
Windows Server 2003 Experts
ISA Server 2004 , Exchange Server Experts
« YANITLA #12 : 09 Mart 2008, 16:31:01 »
« YANITLA #13 : 17 Mart 2008, 03:13:33 »
paylaşımlarınız için teşekkürler.. bi sorum olacaktı..yada şöyle yazayım.if(checkbox==true) {checkbox.label="doğru"}  yani checboxım işaretliyse yanına "doğru" ifadesi gelsin istiyorum.. nolur yardım çok acil bunu öğrenmem lazımm..
Logged
« YANITLA #14 : 28 Mart 2008, 21:38:44 »
gerçektende emeğine saglık flasha yeni baslayan biri olarak bunlara cok ihtiyacım vardı. Çok işime yarayacak teşekkürler...
Logged
Sayfa: [1] 2 3
Konumunuz: SANALKURS.net FORUM - Türkiye'nin Online Eğitim PlatformuYazılımlarFlashActionScript (Moderatör: ttyaman)Flash'ta çok kullanılan actions scripler
Bölüm atla: