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

16/07/2008 - 19:54:59 cevap (8) Okunma : 659 Bu yazıyı 3 kişi tuttu.

AS2^de Tween Classında Değişken Tanımlama Problemi

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

adres Proclus profilini göster
Veli Süngütay 16.07.2008 20:22:16
En iyi cevap mı ?

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.

adres rmncr profilini göster
Arman ACAR 16.07.2008 20:40:35
En iyi cevap mı ?

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

adres Proclus profilini göster
Veli Süngütay 16.07.2008 20:57:49
En iyi cevap mı ?
Faydalı cevap

soyle yazalim:

function Getir(p,q){

    //this otomatikman tanimli olacak bu blok icinde
   //this._x
   // this._y

}

movieClip.onRelease = Getir;

-

adres rmncr profilini göster
Arman ACAR 16.07.2008 21:11:31
En iyi cevap mı ?

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 :)

adres rmncr profilini göster
Arman ACAR 16.07.2008 21:48:10
En iyi cevap 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?

adres Proclus profilini göster
Veli Süngütay 16.07.2008 22:42:21
En iyi cevap mı ?

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.

adres vedozer profilini göster
Vedat Özer 19.07.2008 01:12:22
En iyi cevap mı ?
Faydalı cevap

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;
    }

adres rmncr profilini göster
Arman ACAR 21.07.2008 11:19:48
En iyi cevap mı ?

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.

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 604 (0 kayıtlı, 604 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul