Soru - Cevap Bölümü
/ Kategori: Animasyon
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.
Cevaplar
( Faydalı Cevapları Göster )
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ı :
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;
}
}
}
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;
}
Etkinlikler
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ı
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 64 (50 kayıtlı, 14 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
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)










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ı.
Fakat eğer yukarıda kapattığım
tagları açarsam onEnterFrame olduğu için otomatik artıyor. Fakat benim istedğim butonda rollOver olması. Bunu nasıl çözebilirim?