package //com.waku.components { import flash.events.Event; import flash.events.MouseEvent; import mx.controls.Image; import mx.containers.Canvas; import mx.events.EffectEvent; import mx.core.ScrollPolicy; public class student_game_wakuwaku_com_waku_components_ImageButton extends Canvas { public var animalId : int; public var itemId : int; public var visualTransformation : student_game_wakuwaku_com_waku_components_VisualTransformation; public var mouseOverEffectisPlaying : Boolean = new Boolean(); public function student_game_wakuwaku_com_waku_components_ImageButton() { visualTransformation = new student_game_wakuwaku_com_waku_components_VisualTransformation(this); this.addEventListener(MouseEvent.ROLL_OVER, rollOverMenuItemEventHandler); this.addEventListener(MouseEvent.ROLL_OUT, rollOutMenuItemEventHandler); this.visualTransformation.dissolveEffectIn.addEventListener(EffectEvent.EFFECT_END, dissolveEffectInEndHandler); this.horizontalScrollPolicy = ScrollPolicy.OFF; this.verticalScrollPolicy = ScrollPolicy.OFF; } public function addSource(urlImage:String): void { var itemImage : Image = new Image; itemImage.source=urlImage; this.addChild(itemImage); } public function enableAnimation():void { this.addEventListener(MouseEvent.ROLL_OVER, rollOverMenuItemEventHandler); this.addEventListener(MouseEvent.ROLL_OUT, rollOutMenuItemEventHandler); this.visualTransformation.dissolveEffectIn.addEventListener(EffectEvent.EFFECT_END, dissolveEffectInEndHandler); } public function disableAnimation():void { this.removeEventListener(MouseEvent.ROLL_OVER, rollOverMenuItemEventHandler); this.visualTransformation.dissolveEffectIn.removeEventListener(EffectEvent.EFFECT_END, dissolveEffectInEndHandler); //this.visualTransformation.dissolveEffectIn.stop(); //this.visualTransformation.dissolveEffectOut.stop(); //this.visualTransformation.disabledColorTransform(); } private function dissolveEffectInEndHandler(event : EffectEvent) : void { if (this.mouseOverEffectisPlaying){ this.visualTransformation.dissolveEffectIn.play(); } else { this.visualTransformation.dissolveEffectIn.end(); //this.visualTransformation.dissolveEffectOut.play(); } } private function dissolveEffectOutEndHandler(event : EffectEvent) : void { if (this.mouseOverEffectisPlaying){ this.visualTransformation.dissolveEffectOut.play(); } else { this.visualTransformation.dissolveEffectIn.reverse(); this.visualTransformation.dissolveEffectOut.play(); } } private function rollOverMenuItemEventHandler(event:Event):void { var imageButton : student_game_wakuwaku_com_waku_components_ImageButton = event.currentTarget as student_game_wakuwaku_com_waku_components_ImageButton; if( !imageButton.visualTransformation.dissolveEffectIn.isPlaying) { this.mouseOverEffectisPlaying=true; imageButton.visualTransformation.dissolveEffectIn.play(); } } private function rollOutMenuItemEventHandler(event:Event):void{ var imageButton : student_game_wakuwaku_com_waku_components_ImageButton = event.currentTarget as student_game_wakuwaku_com_waku_components_ImageButton; if( imageButton.visualTransformation.dissolveEffectIn.isPlaying) { this.mouseOverEffectisPlaying=false; //imageButton.visualTransformation.dissolveEffectIn.stop(); } } } }