Skocz do zawartości

Featured Replies

Napisano

Witajcie,

mam pytanie do panów flashowców. Mam na scenie mapkę + listę rzeczy która się na tej mapce znajduje. Po najechaniu na dany element mapki(pasaz1_map) zmieniam alpha najechanego elementu + odpowiadającemu elementowi na liscie(pasaz1_btn). Teraz pytania:

 

1. Jak wyglądałaby pętelka(i czy da się w taki sposób) żebym nie musiał robić ręcznie kolejnych "pasaz2_btn, pasaz2_map"?

 

2. Czy da się zrobić eventlistenerem aby "nasłuchiwał" 2 elementy jednocześnie, tak żebym nie musiał robić:

 

pasaz1_btn.addEventListener(MouseEvent.MOUSE_OVER, pasaz1_info);

pasaz1_map.addEventListener(MouseEvent.MOUSE_OVER, pasaz1_info);

 

Kod:

pasaz1_btn.addEventListener(MouseEvent.MOUSE_OVER, pasaz1_info);
pasaz1_map.addEventListener(MouseEvent.MOUSE_OVER, pasaz1_info);
pasaz1_btn.addEventListener(MouseEvent.MOUSE_OUT, pasaz1a_info);
pasaz1_map.addEventListener(MouseEvent.MOUSE_OUT, pasaz1a_info);

function pasaz1_info(e:MouseEvent):void {
   var myTween:Tween = new Tween(pasaz1_map, "alpha", Strong.easeOut, 1, 0.5, 0.5, true);
   var myTween1:Tween = new Tween(pasaz1_btn, "alpha", Strong.easeOut, 1, 0.5, 0.5, true);
}

 

Pozdrawiam

  • Odpowiedzi 3
  • Wyświetleń 1,2k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

mozesz sobie zrobic jeden listener OnMouseMove (na caly obszar interaktywny) i tam w petli sprawdzac przeciecia (hit) z kazdym z podobszarow,

jesli tych obszarow nie jest duzo to nie bedzie bardzo mulic

 

najbardziej elegancko to sobie mozna to zrobic tak ze do kazdego z obszarow podlaczasz jeden i ten sam listener, a w listenerze sprawdzasz ktory obszar wygenerowal event -> patrz e:MouseEvent, masz tan pelne info o obiekcie ktory go

wygenerowal, zrobisz sobie drabinke z caseow, albo jesli nazwy masz uporzadkowane to sobie mozesz wygenerowac nazwy ktore uzywasz przy Tweenach

Napisano

troche kijowo ponazywałeś obiekty, ale :

var n:int = 40;

for (var i:int = 1; i {
this["pasaz" + i + "_btn"].addEventListener(MouseEvent.MOUSE_OVER, eventTweenOver);
this["pasaz" + i + "_map"].addEventListener(MouseEvent.MOUSE_OVER, eventTweenOver);
this["pasaz" + i + "_btn"].addEventListener(MouseEvent.MOUSE_OUT, eventTweenOut);
this["pasaz" + i + "_map"].addEventListener(MouseEvent.MOUSE_OUT, eventTweenOut);
}

i funkcje:

function eventTweenOver(e:MouseEvent):void
{
var s:String = e.currentTarget.name;
var index:int = int(s.slice(5, s.length - 4));
var element:DisplayObject = this["pasaz" + index + "_btn"];
var t:Tween = new Tween(element, "alpha", Strong.easeOut, 1, 0.5, 0.5, true);
}
function eventTweenOut(e:MouseEvent):void
{
var s:String = e.currentTarget.name;
var index:int = int(s.slice(5, s.length - 4));
var element:DisplayObject = this["pasaz" + index + "_btn"];
var t:Tween = new Tween(element, "alpha", Strong.easeOut, element.alpha, 1, 0.5, true);
}

 

a tak btw.. jak Ci się zaczną ciąć animacje, to się nie przejmuj, flash tak ma. Trzeba zrobić mase warunków aby używać klasy Tween, i ona działała w miarę logicznie. Polecam TweenLite/TweenNano/TweenPro dużo lepiej działa.

 

// sprzedam Opla

Edytowane przez BizU

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności