Türkiye Online Medya Araştırması

İçeriğin rss beslemesi kullanımda değil Soru - Cevap Bölümü / Kategori: Animasyon

22/03/2010 - 14:24:15 cevap (5) Okunma : 2071 Bu yazıyı 2 kişi tuttu.

AS2 ile Tıklanınca Fade in Fade Out

etiketler : as2 fade

Merhabalar.

ActionScript ile bir butona tanımlama yapıp tıklandığında belirlediğim mc nin fade değeri ile oynamak istiyorum. Fade değeride easing ile motion olacak. (İnanılmaz derecede Türkçe karşıtı bir cümle oldu çok özür dilerim)

Yani butona tıklandığı zaman mc1 moviclibinin alfası 20 den 100 e artarak çıkacak.

Bir çok forumda kirupada baktım fakat bir türlü çözemedim.

Şimdiden teşekkürler.

adres rmncr profilini göster
Arman ACAR 08.07.2008 23:18:42
En iyi cevap mı ?
Faydalı cevap

Problemimi bir nebzede olsun çözdüm. Fakat şu anki aşağıdaki kodlarda şöyle bir problem yaşıyorum. Oda alpha yı 10+10 olarak üzerine her gidişinde arttırabiliyorum. Yani istediğim motion olmadı.


var fadeAmount:Number = 10;

mc1._alpha = 20;
mc2._alpha = 20;
mc3._alpha = 20;
mc4._alpha = 20;

/*mc1.onEnterFrame = fadeIn;
mc2.onEnterFrame = fadeIn;
mc3.onEnterFrame = fadeIn;
mc4.onEnterFrame = fadeIn;
*/


mc1.onRollOver = fadeIn;
mc2.onRollOver = fadeIn;
mc3.onRollOver = fadeIn;
mc4.onRollOver = fadeIn;



back_btn.onRelease = fwd_btn.onRelease = moveFrame;

function fadeIn():Void
{
    this._alpha += fadeAmount;
    if(this._alpha==90)
    {
        this._alpha = 90;
        delete this.onEnterFrame;
    }
}

function fadeOut():Void
{
    this._alpha -= fadeAmount;
    if(this._alpha<=0)
    {
        this.gotoAndStop(this.newFrame);
        this._alpha = 0;
        this.onEnterFrame = fadeIn;
    }
}

function moveFrame():Void
{

    var dir:Number = (Number(this._name=="fwd_btn")*2)-1;
    var targetFrame:Number = mc._currentframe+dir;

    if(targetFrame>0 && targetFrame<=mc._totalframes && mc._alpha==100)
    {

        mc.newFrame = targetFrame;
        mc.onEnterFrame = fadeOut;
    }
}

Fakat eğer yukarıda kapattığım


/*mc1.onEnterFrame = fadeIn;
mc2.onEnterFrame = fadeIn;
mc3.onEnterFrame = fadeIn;
mc4.onEnterFrame = fadeIn;
*/

tagları açarsam onEnterFrame olduğu için otomatik artıyor. Fakat benim istedğim butonda rollOver olması. Bunu nasıl çözebilirim?

adres DUNKELHEIT profilini göster
Erdal Taşdemir 09.07.2008 06:07:09
En iyi cevap mı ?
Faydalı cevap

merhaba Arman

Comment ile kapattığın alanıda hesaba katarsak zaten yapmışsın istediğin şeyi. Sadece olayları birbirine nasıl bağlayacağın kalmış geriye. Yapmak istediğin sanırım şu :

1. buton üzerine gelinirse 2. onEnterFrame i başlat 3. onEnterFrame başlarsa mc in alpha değerini arttır yada azalt 4. onEnterFrame i denetle ve bitir. (pc kaynaklarını verimli kullanma standardı)

Sen onEnterFrame yi bir olay sonucuna bağlamadan ilk açılışta tetiklemişsin.

fadeIn ve fadeOut fonksiyonlarına onEnterFrame eklemen yeterli.


function fadeIn():Void
{
    this.onEnterFrame = function() {
    this._alpha += fadeAmount;
    if(this._alpha==90)
    {
        this._alpha = 90;
        delete this.onEnterFrame;
    }
    }
}

function fadeOut():Void
{
     this.onEnterFrame = function() {
        this._alpha -= fadeAmount;
        if(this._alpha<=0)
        {
            this.gotoAndStop(this.newFrame);
            this._alpha = 0;
            this.onEnterFrame = fadeIn;
        }
     }
}

Bende sorun gözükmedi. Ama şunu söyleyeceğim. Script animasyonlarında mümkün olduğunca tween sınıflarını öneririm. Çünkü onEnterFrame ile durum kontrolü yapmak bazen çok güçleşiyor. Mesela

if(this._alpha==90)

kontrolü amount değerinin 10 olduğu durumlarda geçerli. Peki 11 olduğun ne olacak. E doğal olarak if(this._alpha>=90) kullanabilirsin ama bazen çok keskin durma noktaları yapmak isteyebilirsin. Bir de tween class ları ile değişik efekte animasyonlar yapabilirsin.

Web deki tween class ları :

fuse kit 2.1

coretween

caurina

adres rmncr profilini göster
Arman ACAR 09.07.2008 13:50:30
En iyi cevap mı ?

Selamlar

Cevabınız için çok teşekkür ederim. Kod ile biraz oynayıp tam olarak istediğim şeyi elde ettim.


var fadeAmount:Number = 20;

mc1._alpha = 20;
mc2._alpha = 20;
mc3._alpha = 20;
mc4._alpha = 20;

mc1.onRollOver = fadeIn;
mc2.onRollOver = fadeIn;
mc3.onRollOver = fadeIn;
mc4.onRollOver = fadeIn;

mc1.onRollOut = fadeOut;
mc2.onRollOut = fadeOut;
mc3.onRollOut = fadeOut;
mc4.onRollOut = fadeOut;

function moveFrame():Void
{
    var dir:Number = (Number(this._name=="fwd_btn")*2)-1;
    var targetFrame:Number = mc._currentframe+dir;
    if(targetFrame>0 && targetFrame<=mc._totalframes && mc._alpha==100)
    {
        mc.newFrame = targetFrame;
        mc.onEnterFrame = fadeOut;
    }
} 

function fadeIn():Void
{
    this.onEnterFrame = function() {
    this._alpha += fadeAmount;
    if(this._alpha==100)
    {
        this._alpha = 100;
        delete this.onEnterFrame;
    }
    }
}

function fadeOut():Void
{
     this.onEnterFrame = function() {
        this._alpha -= fadeAmount;
        if(this._alpha<=0)
        {
            this.gotoAndStop(this.newFrame);
            this._alpha = 20;
        }
     }
}


adres adem profilini göster
adem Kılıc 09.07.2008 17:06:22
En iyi cevap mı ?
Faydalı cevap

Sahnede mc1 adında bir movieclip b1 b2 adındada 2 adet buton oldunu varsayalım biraz basit oldu ama geliştirile bilir.Umarım bahsettiğiniz şey böle bişey.


var alphahedef:Number = 20;

onEnterFrame = function(){
    var alphadeger:Number = (alphahedef - mc1._alpha)*.3;
    mc1._alpha += alphadeger;
    }


    b1.onPress = function(){
        alphahedef = 100;
        }

        b2.onPress = function(){
        alphahedef = 20;
        }

Ekli Dosyalar

Dosyalara ulaşabilmek için, üye iseniz giriş yapın, değilseniz üye olun.

  • alpha.swf
adres alnol profilini göster
ali sen 05.03.2009 16:28:33
En iyi cevap mı ?

rweyrtwuyr rwerwerwe

aç-kapa Bu Yazıyı Tutanlar

yeni üyelik | şifremi unuttum

aç-kapa Toplantı Özgür Yazılım ve Linux Günleri '10

Özgür Yazılım ve Linux Günleri '10

İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü ve Linux Kullanıcıları Derneği'nin 9 yıldır düzenlemekte oldukları etkinlikler bu yıl `Özgür Y...
Kategori: Toplantı

aç-kapa Yarışma 3. Uluslararası Ekslibris Yarışması: İstanbul 2010

3. Uluslararası Ekslibris Yarışması: İstanbul 2010

İstanbul Ekslibris Dernegi, Feyziye Mektepleri Vakfı ve Işık Üniversitesi, kitaplar için mülkiyet işareti olarak kabul edilen ve üzerinde estetik dege...
Kategori: Yarışma

aç-kapa Konferans Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Generally speaking, the term "New" brought about debates. We try to open up and elucidate the term "New" along with "Interact...
Kategori: Konferans

aç-kapa Konferans 3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

Konferans ile ilgili ayrıntılı bilgiye aşağıdaki bağlantıdan ulaşabilirsiniz: http://www.futurelearning.org.tr/katilim_cagrisitr.pdf ...
Kategori: Konferans

aç-kapa Toplantı IV. ANKARA TASARIM GÜNLERİ 2010

IV. ANKARA TASARIM GÜNLERİ 2010

IV. Ankara Tasarım Günleri, seminerleri, sunumları, etkinlik tarihleri boyunca gezilebilecek tasarım sergileri, video art gösterimleri, çeşitli worksh...
Kategori: Toplantı

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 64 (50 kayıtlı, 14 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

...

Blog Bölümü Blogevi.com'a Taşınıyor

Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...

7.500'üncü üyemiz Cem Koç!

Neler Yapılabilir?

500 Hatası Hakkında!

Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)

coldfusion mysql ubuntu
 
sponsor adobe istanbul