SSn4k3 Napisano 30 Sierpień 2010 Napisano 30 Sierpień 2010 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
Gość Gosc Napisano 30 Sierpień 2010 Napisano 30 Sierpień 2010 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
BizU Napisano 30 Sierpień 2010 Napisano 30 Sierpień 2010 (edytowane) 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 31 Sierpień 2010 przez BizU
SSn4k3 Napisano 31 Sierpień 2010 Autor Napisano 31 Sierpień 2010 Dzięki wielkie Wam za pomoc. Zaraz będę kombinował:)
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się