Flash ile Kar Yağdırma [Action Script 2.0]

yasko_

New member
Katılım
9 Ağu 2007
Mesajlar
3,257
Reaction score
0
Puanları
0
FlashNoob isimli arkadaşımızın açtığı konudan esinlenerek bir şeyler yapmak isteyen arkadaşlara kılavuz olma amacıyla bu dersi hazırladım... Maalesef ki okul ve dersler olduğundan pek yoğunluk veremiyorum foruma bu yüzden resimsiz bir tutorialle idare etmenizi rica edeceğim... Neyse gelelim dersimize;

Kar Yağdırtma Efekti

Yeni bir çalışma sahnesi açtıktan sonra ilk işimiz bir kar taneciği çizmek olacaktır...

3x3 px bir yuvarlak çizelim ve bunu movieclip haline getirelm, kar ismini verelim ve movieclip imize filter bölmesinden glow filitresi ekleyelim...

Tüm bunları yaptıktan sonra movie clibimizi sahneden silelim dikkat edelim sadece sahneden siliyoruz movieclip kütüphanede var olmaya devam etmeli..

Şimdi movieclip ismini "kar" olarak belirlediğimiz Clip'imize sağ tıklayalım orada görecek olduğunuz Linkage(yada prooerties tuşuna basıp advenced e basarak linkage butonunu görebilirsiniz...) tuşuna basalım.

Bir panel açılacak ve panel'de Export for ActionScript isimli check'i aktif edelim Identifier bölümüne de kar dedikten sonra Ok tuşuna basalım.

Tüm bunları yaptıktan sonra, birinci frame'imize gelelim ve şu kodları girelim.


Kod:
karyagdirma = function () { 
    width = 800; 
    height = 600; 
    kar_boyutu = 20; 
    kar_taneleri = 60; 
    for (i=0; i<kar_taneleri; i++) { 
        t = attachMovie("kar", "kar"+i, i); 
        t._alpha = 20+Math.random()*60; 
        t._x = -(width/2)+Math.random()*(1.5*width); 
        t._y = -(height/2)+Math.random()*(1.5*height); 
        t._xscale = t._yscale=50+Math.random()*(kar_boyutu*10); 
        t.k = 1+Math.random()*2; 
        t.kivrim = -1.5+Math.random()*(1.4*3); 
        t.onEnterFrame = uygulama; 
    } 
}; 
uygulama = function() { 
    this._y += this.k; 
    this._x += this.kivrim; 
    if (this._y>height+10) { 
        this._y = -20; 
    } 
    if (this._x>width+20) { 
        this._x = -(width/2)+Math.random()*(1.5*width); 
        this._y = -20; 
    } else if (this._x<-20) { 
        this._x = -(width/2)+Math.random()*(1.5*width); 
        this._y = -20; 
    } 
} 
karyagdirma();

Ctrl + Enter kombinasyonu ile çalışmanızı test edebilirsiniz...

Önizleme
 
Konular birleştirildi.
 
uzun zaman forum kullanmamanın zararları arama butonunu unutmuşuz... :D
 
FlashNoob isimli arkadaşımızın açtığı konudan esinlenerek bir şeyler yapmak isteyen arkadaşlara kılavuz olma amacıyla bu dersi hazırladım... Maalesef ki okul ve dersler olduğundan pek yoğunluk veremiyorum foruma bu yüzden resimsiz bir tutorialle idare etmenizi rica edeceğim... Neyse gelelim dersimize;

Kar Yağdırtma Efekti

Yeni bir çalışma sahnesi açtıktan sonra ilk işimiz bir kar taneciği çizmek olacaktır...

3x3 px bir yuvarlak çizelim ve bunu movieclip haline getirelm, kar ismini verelim ve movieclip imize filter bölmesinden glow filitresi ekleyelim...

Tüm bunları yaptıktan sonra movie clibimizi sahneden silelim dikkat edelim sadece sahneden siliyoruz movieclip kütüphanede var olmaya devam etmeli..

Şimdi movieclip ismini "kar" olarak belirlediğimiz Clip'imize sağ tıklayalım orada görecek olduğunuz Linkage(yada prooerties tuşuna basıp advenced e basarak linkage butonunu görebilirsiniz...) tuşuna basalım.

Bir panel açılacak ve panel'de Export for ActionScript isimli check'i aktif edelim Identifier bölümüne de kar dedikten sonra Ok tuşuna basalım.

Tüm bunları yaptıktan sonra, birinci frame'imize gelelim ve şu kodları girelim.


Kod:
karyagdirma = function () { 
    width = 800; 
    height = 600; 
    kar_boyutu = 20; 
    kar_taneleri = 60; 
    for (i=0; i<kar_taneleri; i++) { 
        t = attachMovie("kar", "kar"+i, i); 
        t._alpha = 20+Math.random()*60; 
        t._x = -(width/2)+Math.random()*(1.5*width); 
        t._y = -(height/2)+Math.random()*(1.5*height); 
        t._xscale = t._yscale=50+Math.random()*(kar_boyutu*10); 
        t.k = 1+Math.random()*2; 
        t.kivrim = -1.5+Math.random()*(1.4*3); 
        t.onEnterFrame = uygulama; 
    } 
}; 
uygulama = function() { 
    this._y += this.k; 
    this._x += this.kivrim; 
    if (this._y>height+10) { 
        this._y = -20; 
    } 
    if (this._x>width+20) { 
        this._x = -(width/2)+Math.random()*(1.5*width); 
        this._y = -20; 
    } else if (this._x<-20) { 
        this._x = -(width/2)+Math.random()*(1.5*width); 
        this._y = -20; 
    } 
} 
karyagdirma();

Ctrl + Enter kombinasyonu ile çalışmanızı test edebilirsiniz...

Önizleme

Cok tesekkür ederim ustam, benim ismim gecmis, tesvik ettiysem ne ala, sizlerde beni iyi flashlere tesvik ediyorsunuz.

Esasinda ben as2 fazla eglenmemeye karar vermistim ama yinede as anlamaya calisacagim.

karyagdirma = function () {
width = 800;
height = 600;
kar_boyutu = 20;
kar_taneleri = 60;


Buraya kadar bir zorluk yok, genisligi 800 pixel yüksekligi 600 pixel karboyutu 20 pixel ve kar taneleri 60 pixel.

Simdi matematiksel sorun basliyor sanirim.

for (i=0; i<kar_taneleri; i++) {
t = attachMovie("kar", "kar"+i, i);
t._alpha = 20+Math.random()*60;
t._x = -(width/2)+Math.random()*(1.5*width);
t._y = -(height/2)+Math.random()*(1.5*height);
t._xscale = t._yscale=50+Math.random()*(kar_boyutu*10);
t.k = 1+Math.random()*2;
t.kivrim = -1.5+Math.random()*(1.4*3);
t.onEnterFrame = uygulama;
}


for (i =0 burad i variablesi kullanilmis ve baslamasi 0 dan basliyor, i<kar_taneleri i kar_tanelerinden küccük; i ++ her sefer calistiginda bir i daha ekleniyor, sonunda i kural icabi herhalde.
t= attachMovie---burada Movie ye hitab ediliyor herhalde (kural icabi hangi verilere hitab ettigi "kar" ve kar arti i, sonunda yine kural icabi i;

t._alpha görünmezlik ayari, yada bulaniklik ayari, 20+ Matr.random un virgül yada son sayida bir ayarlama yapiyor, carpi 1,5 * genisligi--herhalde genisledikce görülmezlik fazlalasiyor.

t._x = bir variable x boyutunda carpi (genisligi/2)+Math.random()--burasi yine sayi yamik veya düz olmaz ise bir düzleme yapiyor sanirim, bakmam lazim ne türde :) carpi (1,5 carpi genisligiyle)

t._y = y boyutunda ayni

t._scale = büyükliük ayari sanirim scale den belli.

gerisinde kafa karisti tek
t.onEnterFrame = uygulama; ile yeni functiona isaret ediyor, bu funcitonda sahneye girilince ne yapilacagi altbölümde uygulaniyor biraz terledim,

sunum icin tesekkürler
 
Tşkrler üstad.. Faydalı işlerdesin yine saolasın..
 
bu actionscript javascripte ne kadar benzio:p
temel şeyleri öğrensem AS bölümü kolay ama hâla motion tween mivin yapamiyorm =)

Zaten seninde bildiğin gibi enescim tüm kodlama dilleri mantıksal matematik üzerine kurulmuştur sadece kodların kullanım alanı ve bazı ekstra kendine has özellikleri dışında neredeyse aynı sayılırlar... :) yani herhangi bir kodlama dilini gerçekten iyi bilen birisi başka bir kodlama dilini öğrenmek için pek zorlanmaz temeli bildikten sonrası sadece kullandığı programı bilmesine kalır...

Cok tesekkür ederim ustam, benim ismim gecmis, tesvik ettiysem ne ala, sizlerde beni iyi flashlere tesvik ediyorsunuz.

Esasinda ben as2 fazla eglenmemeye karar vermistim ama yinede as anlamaya calisacagim.

karyagdirma = function () {
width = 800;
height = 600;
kar_boyutu = 20;
kar_taneleri = 60;


Buraya kadar bir zorluk yok, genisligi 800 pixel yüksekligi 600 pixel karboyutu 20 pixel ve kar taneleri 60 pixel.

Simdi matematiksel sorun basliyor sanirim.

for (i=0; i<kar_taneleri; i++) {
t = attachMovie("kar", "kar"+i, i);
t._alpha = 20+Math.random()*60;
t._x = -(width/2)+Math.random()*(1.5*width);
t._y = -(height/2)+Math.random()*(1.5*height);
t._xscale = t._yscale=50+Math.random()*(kar_boyutu*10);
t.k = 1+Math.random()*2;
t.kivrim = -1.5+Math.random()*(1.4*3);
t.onEnterFrame = uygulama;
}


for (i =0 burad i variablesi kullanilmis ve baslamasi 0 dan basliyor, i<kar_taneleri i kar_tanelerinden küccük; i ++ her sefer calistiginda bir i daha ekleniyor, sonunda i kural icabi herhalde.
t= attachMovie---burada Movie ye hitab ediliyor herhalde (kural icabi hangi verilere hitab ettigi "kar" ve kar arti i, sonunda yine kural icabi i;

t._alpha görünmezlik ayari, yada bulaniklik ayari, 20+ Matr.random un virgül yada son sayida bir ayarlama yapiyor, carpi 1,5 * genisligi--herhalde genisledikce görülmezlik fazlalasiyor.

t._x = bir variable x boyutunda carpi (genisligi/2)+Math.random()--burasi yine sayi yamik veya düz olmaz ise bir düzleme yapiyor sanirim, bakmam lazim ne türde :) carpi (1,5 carpi genisligiyle)

t._y = y boyutunda ayni

t._scale = büyükliük ayari sanirim scale den belli.

gerisinde kafa karisti tek
t.onEnterFrame = uygulama; ile yeni functiona isaret ediyor, bu funcitonda sahneye girilince ne yapilacagi altbölümde uygulaniyor biraz terledim,

sunum icin tesekkürler

eline sağlık kardeş. okuldu sınavlardı üniversite hazırlığı falan derken bazen kendime bile zaman ayıramıyorum.. elimden geldiğince de forumdaki flash ile ilgili konularda yardımlarda bulunmaya çalışıyorum.. fakat eskiden flash dersleri pek rağbet görmezdi photoshop dersleri arasında kaynar giderdi.. şimdi bakıyorumda ilk sıralarda flash dersleri var -" tabiki bunun başka nedenleride vardır..."- gerçekten şu an çok sevindim... Neyse kod bilgimiz birbiriyle yakın yakına kodlara yazdığın yorumlardan anladığım kadarıyla, vede eline sağlık gerçekten yeni başlayanlar için güzel çalışmalarda bulunuyorsun....
 
Geri
Üst