Napisano 30 Sierpień 201014 l 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
Napisano 30 Sierpień 201014 l 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 30 Sierpień 201014 l 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ń 201014 l przez BizU
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto