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

09/07/2008 - 00:47:19 cevap (4) Okunma : 569 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 09.07.2008 02: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 09: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 16: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 20: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

aç-kapa Bu Yazıyı Tutanlar

yeni üyelik | şifremi unuttum

aç-kapa Yarışma 5.İstanbul Animasyon ve Görsel Efekt Kısa Film Yarışması

5.İstanbul Animasyon ve Görsel Efekt Kısa Film Yarışması

5.İstanbul Uluslararası Animasyon Festivali, 24-30 Kasım 2008 tarihleri arasında gerçekleştirilecektir. Festival dahilinde gerçekleşen 5. İstanbul Ani...
Kategori: Yarışma

aç-kapa Konferans TIME 2008 Interpro Forum Telekom, Internet, Medya, Eğlence Konferansı

TIME 2008 Interpro Forum Telekom, Internet, Medya, Eğlence Konferansı

Program 1 Aralık 2008 Pazartesi 08:00-12:00 Kayıt 10:00-10:30 Ana Oturum Türkiye’de Yeni Nesil Telekom Hizmeti Cengiz Anık – Avea, Ge...
Kategori: Konferans

aç-kapa Çalıştay Dirty99, 9. Pazarlama Zirvesi Etkinliği

Dirty99, 9. Pazarlama Zirvesi Etkinliği

Dirty99, 9. Pazarlama Zirvesi süresince 99 özel pazarlama profesyoneli ile, 99 dakikalık bir workshop çalışması! Özellikle interaktif pazarlama araçla...
Kategori: Çalıştay

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

aç-kapa Konferans Bilgi Güvenliği ve Kriptoloji Konferansı

Bilgi Güvenliği ve Kriptoloji Konferansı

Önemli Tarihler: Etkinlik Tarihi : 24-26 Aralık 2008 Son Bildiri Gönderme Tarihi : 20 Ekim 2008 Bildiri Kabul Tarihi Bildirimi :...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

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

faruk86 ...
coldfusion mysql ubuntu
 
sponsor adobe istanbul