Soru - Cevap Bölümü
/ Kategori: Animasyon
Merhabalar
AS2 ile bazı tween uygulamaları yapıyorum. Tanımladığım mclere tıkladıgım zaman kendi _x ve _y değerlerinden belirlediğim _x ve _y değerlerine gidecek ve duracak. Buraya kadar herşey normal.
Fakat kod karmaşası olmaması açasından function ı bir tane tanımlıyorum. Çünkü 6 adet tıklanacak mc ‘im mevcut.
import mx.transitions.Tween;
import mx.transitions.easing.*;
/*
Tanımlı ürün movicliplerimiz
urun1,urun2,urun3,urun4,urun5,urun6,
*/
//GENEL TANIMLAMALAR
var Genislik = 106;
var Yukseklik = 92;
var Opacity = 30;
var OpacitySon = 100;
// BOYUT TANIMLAMASI ve BAŞLANGIÇ ALPHA TANIMLAMASI YAPALIM
urun1._alpha = 30;
urun1._x = 4;
urun1._y = 131;
urun1.onRelease = Getir(urun1,urun1._x,urun1._y);
urun2._alpha = 30;
urun2._x = 119;
urun2._y = 131;
urun2.onRelease = Getir(urun2,urun2._x,urun2._y);
urun3._alpha = 30;
urun3._x = 229;
urun3._y = 131;
urun3.onRelease = Getir(urun3,urun3._x,urun3._y);
urun4._alpha = 30;
urun4._x = 660;
urun4._y = 131;
urun4.onRelease = Getir(urun4,urun4._x,urun4._y);
urun5._alpha = 30;
urun5._x = 769;
urun5._y = 131;
urun5.onRelease = Getir(urun5,urun5._x,urun5._y);
urun6._alpha = 30;
urun6._x = 881;
urun6._y = 131;
urun6.onRelease = Getir(urun6,urun6._x,urun6._y);
// TIKLANINCA GELEN ORTADAKİ DETAY FOTOĞRAFININ BOYUTUNU
var BuyukHalw = 309;
var BuyukHalh = 218;
var Ortax = 343;
var Ortay = 6;
// FONKSİYONLARIM
/* Tıklama Anında Ana Ekrana Büyüterek Getireceğiz */
function Getir(mc,buradan,oradan) {
new Tween(mc, "_x", Regular.easeIn, buradan, Ortax, 2, true);
new Tween(mc, "_y", Regular.easeIn, oradan, Ortay, 2, true);
new Tween(mc, "_xscale", Regular.easeIn, Genislik, BuyukHalw, 2, true);
new Tween(mc, "_yscale", Regular.easeIn, Yukseklik, BuyukHalh, 2, true);
new Tween(mc, "_alpha", Regular.easeIn, Opacity, OpacitySon, 2, true);
}
functionda tanımladığım mc,buradan, oradan değerleri mc nin adını hangi x de oldugunu ve hangi y de oldugunu belirtiyor. Ortak bir noktada topladıgım için MC leri Ortax ve Ortay de sabit olarak değişkenden geliyor.
Fakat
urun1.onRelease = Getir(urun1,urun1._x,urun1._y);
olarak tanımlama yaptığımda Tween otomatik olarak başlıyor.
Şimdiden teşekkürler
Cevaplar
( Faydalı Cevapları Göster )
Selam Veli Cevabın için sağol. Fakat sanırım ben tam anlayamadım.
Yapmam gereken şey function ı tanımlamak mı?
var Surukle = function Getir(mc,buradan,oradan) {
new Tween(mc, "_x", Regular.easeIn, buradan, Ortax, 2, true);
new Tween(mc, "_y", Regular.easeIn, oradan, Ortay, 2, true);
new Tween(mc, "_xscale", Regular.easeIn, Genislik, BuyukHalw, 2, true);
new Tween(mc, "_yscale", Regular.easeIn, Yukseklik, BuyukHalh, 2, true);
new Tween(mc, "_alpha", Regular.easeIn, Opacity, OpacitySon, 2, true);
}
eğer bu şekilde ise hata alıyorum
Function declaration not permitted here
Ve ayrıca bunu bu şekilde tanımladıktan sonra tıklama eventını bu şekilde kullanabilecek miyim?
urun1.onRelease = Surukle(urun1,urun1._x,urun1._y);
Teşekkürler
soyle yazalim:
function Getir(p,q){
//this otomatikman tanimli olacak bu blok icinde
//this._x
// this._y
}
movieClip.onRelease = Getir;
-
Teşekkür ederim.
function Getir(mc,buradan,oradan) {
new Tween(this, "_x", Regular.easeIn, this._x, Ortax, 2, true);
new Tween(this, "_y", Regular.easeIn, this._y, Ortay, 2, true);
new Tween(this, "_xscale", Regular.easeIn, Genislik, BuyukHalw, 2, true);
new Tween(this, "_yscale", Regular.easeIn, Yukseklik, BuyukHalh, 2, true);
new Tween(this, "_alpha", Regular.easeIn, Opacity, OpacitySon, 2, true);
}
şeklinde yapınca istediğim oldu. Şimdi baya bir editlemem lazım :)
Şimdiki ortaya çıkan problemimde şöyle. İstediğim gibi getirtebiliyorum. Orada sorun yok. Fakat 2. 2. 4. 5. 6. urun mc leri üstüste geliyor ve yerlerinden çektiğimiz içinde yerleri boş kalıyor.
Benim getir fonksiyonuna birde götür eklemem lazım ve diğer tüm urun mclerini geri götürmesi lazım
bunu nasıl yapabilirim?
baslangic noktalarini alicaksin ilk once. sonra baska bir callback ile yeni bir tween olusturacaksin baslangic noktalarini hedefleyen. Ya da start(x) gibi bir method varsa, x degerini degistireceksin.
Bu arada ben Tween classlarini kullanmadim. Pixlib’i kullandim hep. Ama sonucta benzer olmali.
Onemli 2 ayrinti var. Tween classlarini defalarca olusturma. Bir kere olustur, objeleri kullanarak start(),stop() yap.
Bir de diyelim MC saga dogru haraket ediyor. Ama bi anda sola dogru haraket etmesi gerekti. Saga dogru olan haraketi stop() yapman gerek. Sonra tekrardan yeni tween’i start yapmalisin. Yoksa mc hareketi tutarsizlasir.
Yaptığın örneği düzenleyerek yaptım. Umarım açıklayıcı olur.
import mx.transitions.Tween;
import mx.transitions.easing.*;
/*
Tanımlı ürün movicliplerimiz
urun1,urun2,urun3,urun4,urun5,urun6,
*/
//GENEL TANIMLAMALAR
var Genislik = 106;
var Yukseklik = 92;
var Opacity = 30;
var OpacitySon = 100;
//bir önceki tıklanan movieclip i tutacağımız değişken
var mc_geri:MovieClip;
// BOYUT TANIMLAMASI ve BAŞLANGIÇ ALPHA TANIMLAMASI YAPALIM
urun1._alpha = 30;
urun1._x = 4;
urun1._y = 131;
//movie clip in mevcut özelliklerini kendi içerisinde değişkenlerde tutuyoruz
al(urun1);
urun1.onRelease = function() {
Getir(urun1,urun1._x,urun1._y);
};
urun2._alpha = 30;
urun2._x = 119;
urun2._y = 131;
al(urun2);
urun2.onRelease = function() {
Getir(urun2,urun2._x,urun2._y);
};
urun3._alpha = 30;
urun3._x = 229;
urun3._y = 131;
al(urun3);
urun3.onRelease = function() {
Getir(urun3,urun3._x,urun3._y);
};
urun4._alpha = 30;
urun4._x = 660;
urun4._y = 131;
al(urun4);
urun4.onRelease = function() {
Getir(urun4,urun4._x,urun4._y);
};
urun5._alpha = 30;
urun5._x = 769;
urun5._y = 131;
al(urun5);
urun5.onRelease = function() {
Getir(urun5,urun5._x,urun5._y);
};
urun6._alpha = 30;
urun6._x = 881;
urun6._y = 131;
al(urun6);
urun6.onRelease = function() {
Getir(urun6,urun6._x,urun6._y);
};
// TIKLANINCA GELEN ORTADAKİ DETAY FOTOĞRAFININ BOYUTUNU
var BuyukHalw = 309;
var BuyukHalh = 218;
var Ortax = 343;
var Ortay = 6;
// FONKSİYONLARIM
/* Tıklama Anında Ana Ekrana Büyüterek Getireceğiz */
function Getir(mc, buradan, oradan) {
//bir önceki tıklanmış movie clip i eski yerine götürüyoruz.
new Tween(mc_geri, "_alpha", Regular.easeIn, mc_geri._alpha, mc_geri.alpha_, 2, true);
new Tween(mc_geri, "_x", Regular.easeIn, mc_geri._x, mc_geri.x_, 2, true);
new Tween(mc_geri, "_y", Regular.easeIn, mc_geri._y, mc_geri.y_, 2, true);
new Tween(mc_geri, "_xscale", Regular.easeIn, mc_geri._xscale, 100, 2, true);
new Tween(mc_geri, "_yscale", Regular.easeIn, mc_geri._yscale, 100, 2, true);
//tıklanan movie clip i tween uyguluyorz.
new Tween(mc, "_x", Regular.easeIn, mc._x, Ortax, 2, true);
new Tween(mc, "_y", Regular.easeIn, mc._y, Ortay, 2, true);
new Tween(mc, "_xscale", Regular.easeIn, Genislik, BuyukHalw, 2, true);
new Tween(mc, "_yscale", Regular.easeIn, Yukseklik, BuyukHalh, 2, true);
new Tween(mc, "_alpha", Regular.easeIn, Opacity, OpacitySon, 2, true);
mc_geri = mc;
}
//movie clip lerin özelliklerini kendi içerisinde tutmak için bir fonksiyon.
function al(mc:MovieClip){
mc.alpha_ = mc._alpha;
mc.x_ = mc._x;
mc.y_ = mc._y;
}
Selamlar
Cevabın için çok teşekkür ederim. Veli’de sağolsun msnden baya uğraştı benimle. İkinizede teşekkürler.
Vedat Hocam cevabın sorunsuz bir şekilde işe yaradı. Ellerine sağlık.
Etkinlikler
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
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 604 (0 kayıtlı, 604 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız








Cunku tam olarak oyle komut vermissin Flash Player’a. Arayuz programlamanin en onemli parcasi "callback" dedigimiz yapilardir: var callback = function(p,q){ //bir seyler yap. }
bu sekilde tanimlanir, daha sonra ornegin bir mouse eventine baglanir:
button.onRelease = callback
eger callback() dersen fonksiyonu cagirmis olur o ANDA.