Neler yeni

Yeni mesajlar Yeni konular En çok mesaj En çok tepki En çok görüntülenen

mantık hatası (Yardım)

TheRise

🌱Yeni Üye🌱
Katılım
2 Ara 2010
Mesajlar
18
Tepkime puanı
0
şimdi arkadaşlar ben boş kaldığım zamanlarda flash çalışıyprum kendi kafama göre bazı sistemler oluşturmaya çalışıyorum. şimdi bi noktada acayip kafam kırıldı. sahnemde 2 tane button niteliğinde mc var içlerinde bir küçükte animasyon var. birde bu mc lerin içerisinde "alan" isminde bir mc daha var mouse hareketini yakalamak için. bide öylesine bir kare çizdim sahneye 2 framelik bir mc ye çevirdim onu. ismide " page". gel gelelim kodlara.

öncelikle btn1 ve btn2 için oluşturduğum roll_over sistemi;

Kod:
btn1.alan.addEventListener(MouseEvent.ROLL_OVER, btn_over);
btn1.alan.addEventListener(MouseEvent.ROLL_OUT, btn_out);

btn2.alan.addEventListener(MouseEvent.ROLL_OVER, btn_over);
btn2.alan.addEventListener(MouseEvent.ROLL_OUT, btn_out);

function btn_over(e:MouseEvent):void
{
	e.target.parent.over = true;
}

function btn_out(e:MouseEvent):void
{
	e.target.parent.over = false;
}


daha sonrada ENTER_FRAME kllanarak bu hareketi mousun gidip gelişi ile hareketlendirdim.

Kod:
btn1.alan.addEventListener(Event.ENTER_FRAME, btn_enter);
btn2.alan.addEventListener(Event.ENTER_FRAME, btn_enter);

function btn_enter(e:Event):void
{
	var mc = e.target.parent;
	if ( mc.over == true )
	{
		mc.nextFrame();
	}
	else
	{
		mc.prevFrame();
	}
}


buraya kadar bir sorun yok her şey gayet güzel çalışıyor. mousun üzerine geldiği mc ileri sarıyor gelmediği ise geri sarıyor.
actions lara da şu kodu eklediğimde istediğim düğmeyi mouse üzerinde imişçe sine sürekli son framede tutabiliyorum.

Kod:
this.stage.addEventListener(Event.ENTER_FRAME, islem);

function islem (e:Event):void{
	btn1.over=true;
	}

şimdi gel gelelim benim sorunuma.ben bu işlemi yapabildiğime göre bunu bir otomatiğe bağlamak ve sayfa mc sini sitedeki menüler gibi kullanarak hangisi seçilmiş ise onu okutarak düğmelerden de o sayfaya ait olanı seçilmiş gibi göstermek istiyorum bunun içinde yukardaki enterframe kodunu şu şekilde yaptim ama yemedi.

Kod:
var secilen:int;
this.stage.addEventListener(Event.ENTER_FRAME, islem);

function islem (e:Event):void{
	secilen=sayfa.currentFrame;
	var secilenbtn="btn"+secilen;
        secilenbtn.over=true;

}

şimdi vburaya kadar mantiken herşey düzgün ama çalışmıyor.

trace(secilenbtn); yazdığımda output da btn1 yazıyor ama secilenbtn yi over yaptiğimda nasıl btn 1 e atfedeceğini çözemedim yardımcı olan arkadaşlara şimdiden teşekkürler.
 

Benzer konular

siir-delisi

🏅Acemi Tasarımcı🏅
Katılım
28 Şub 2011
Mesajlar
80
Tepkime puanı
0
Ustam bir swf i ve Fla eklede bizde ilgilenelim.

Bu seferler yine aram as3 ile sogudu, insan ögrendigi seyleri okadar cabuk unutuyorki ilgilenmeyince, bazi ilgileniyorum ve kendimi gelistirmeye calisiyorum ,ayni sizin gibi degisik seyler üretmeye calisiyorum ama sorabilecek ve paylasabilecekleri olmayinca insanin arasi soguyup gidiyor.

En azindan birbirimizi yalniz birakmayip tesvik edelim.

Ben Genelde ROLL_OVER veyahut ROLL_OUT gibi komutlari kullanmiyorum, bana biraz as2 andiriyor, bunun yerine MOUSE_OVER ve MOUSE_OUT kullaniyorum.
Biraz bilgilerimi tazeledim ve ROLL_OVER gibi komutlar bir üst seviyedeki elementte kabul görmüyormus, taninmiyormus. (ulasilmiyormus)

scriptinde parent kullaniyorsun herhalde üst sahneden altsahnelerdeki bir Movieclipe ulasmak isindir, ben bunu daha basaramadim as2 kolay oluyordu as3 daha cikaramadim.

Gerisini sonra konusuruz, FLa ve swf yüklersen ulasmak istedigini daha kolay anlarim ve cözüm ararken bende birseyler ögrenirim.

Saygilar
 

siir-delisi

🏅Acemi Tasarımcı🏅
Katılım
28 Şub 2011
Mesajlar
80
Tepkime puanı
0
Fla dosyasini indirdim ve buttonlarin üstüne gelinince soldan maske ile uygulanan siyahlasama hareketlilik getirmissin. Birincisi otamatik oluyor ve degismiyor.

ikinci buttonun üstüne gelinince harekete geciyor, siyahlasiyor ve cekilince geri gidiyor.
Simdi ikiside bu sekilde olmasini istiyorsun?

Ilk kodeden anlamaya calisayim, tabi kafani yormaz isek.

e.target.parent.over = true;

simdi burada neden over kullaniyorsun?
e.target hatirladigim kadar olay istikameti veyahut mousun ulastigi alan gibi anliyorum.
Sanki anladigima göre siz buttonlari mc seklinde uyguladiniz ve buttonmoduna cevirmek istiyorsunuz bu komut ile.

Bunun yerine button icin uyguldigin mc yazip buttonMode = true yazsan yeterlidir.

misal btn1.buttonMode = true;
 

fullflash

🏅Acemi Tasarımcı🏅
Katılım
20 Kas 2010
Mesajlar
76
Tepkime puanı
0
MovieClip olayını Yani Display Programlama iyi çözmek gerekiyor 3.0'da yoksa iç içe konulan MovieClipleri yönetmek zor bunun bir cok yolu var ama olay eklediğiniz bir movieclip'in buna karşılık vermesini istiyorsak şunu bilmeliyiz. 1.mc içerisine eklenen("addChild ya manuel"); 2.mc için trace(event.target.name) denildiğinde 2.mc nin ismini vericek trace(event.currentTarget.name) ise 1.mc ismini verir. Burada 1.mc bir konteyner görivi üstlenir 2.mc ise ona bağımlıdır. yani şekilde üsteki yani konteyner mc bu olaya karşılık vermesi istenildiğinde trace(event.target.parent.name); 1.mc ismini okur....
 

TheRise

🌱Yeni Üye🌱
Katılım
2 Ara 2010
Mesajlar
18
Tepkime puanı
0
kerem abi yok ya olmuyor bir türlü beceremedim. bunu for döngüsü kullanmadan yapmanın bir yolu yokmu. for ile yapılıyor ama menüleride for ile çevirmek gibi bi acayip işlem yaptiği için kullanamıyorum onu.

bu benim paylaştığım üzerinden bir editleme yapabilirmisin bize.
 

fullflash

🏅Acemi Tasarımcı🏅
Katılım
20 Kas 2010
Mesajlar
76
Tepkime puanı
0
Öncelikle mantık hatası parent.target derken konuyu başka yerlere saptırtmışsınız arkadaşlar... Senin uygulamaya calıştığın kullanıcının hangi menuyu seçtiğini görebilmesi için yapılan sabit bir uygulama ve basit bir mantığa sahiptir. Download link'teki .fla az kod çok açıklama ile tamada senin aradığın cevabı verir. hatta bunun için belki bir video tutorial hazırlarım vakit bulursam...

https://rapidshare.com/files/461093437/secilimenu.fla
 
Üst