мувиклип не реагирует на щелчок мышью - PullRequest
0 голосов
/ 26 ноября 2011

У меня такая проблема: элемент MovieClip не реагирует на щелчок мышью.У меня есть MovieClip «линия», которая содержит 4 идентичных дочерних элемента с именами экземпляров: «item0», «item1», «item2», «item3».Все предметы идентичны.Я добавляю к ним слушателей событий onClick.Но только два из них реагируют на событие, остальные два просто не реагируют на щелчок мышью.Как я могу решить эту проблему.Какие параметры мне нужно посмотреть и что они должны значить.Спасибо.

public class BonusGameLine extends EventDispatcher implements IViewLogic
    {
        public static var LINE_ITEM_CLASS:Class = BonusItemViewLogic;
        protected static var time_before_fade_out:int = 2000;

        public var id:int;
        public var line_mc:MovieClip;

        protected var line_items:Array = [];

        protected var line_result:BonusLineResultVO;

        protected var line_final_anim_count:uint = 0;
        public var item_bring_to_front:Boolean;
        public var string_in_result:String = '';
        public function BonusGameLine( id:int, line_mc:MovieClip )
        {
            this.id = id;
            this.line_mc = line_mc;
            this.line_mc.addEventListener( MouseEvent.CLICK, dispatchEvent );
        }

        public function activate():void{
            if (line_mc.hasOwnProperty('back_mask_anim')){
                (line_mc['back_mask_anim'] as MovieClip).gotoAndStop('hide');
                (line_mc['back_mask_anim'] as MovieClip).play();
            }
            if (line_mc.hasOwnProperty('instruction')){
                (line_mc['instruction'] as MovieClip).gotoAndStop('show');
                (line_mc['instruction'] as MovieClip).play();
            }
            if (line_mc.hasOwnProperty('progress')){
                (line_mc['progress'] as MovieClip).gotoAndStop('show');
                (line_mc['progress'] as MovieClip).play();
            }
            activateItems();
        }

        protected function activateItems():void{
            var index:int;
            while( line_mc.hasOwnProperty('item'+index) ) {
                var it:MovieClip = line_mc['item'+index] as MovieClip;
                it.mouseChildren = false;
                trace(index);
                testMovie(it);

                var item:BonusItemViewLogic = new LINE_ITEM_CLASS( index,  it)
                item.addEventListener( MouseEvent.CLICK, userSelectedHandler );
                line_items.push(item);
                index++;
            }
        }

        private function testMovie(movie:InteractiveObject):void
        {
            trace("Begin test------------");
            trace("name: " + movie.name);
            trace("parent.name: " + movie.parent.name);
            trace("mouseEnable: " + movie.mouseEnabled);
            trace("focusRect: " + movie.focusRect);
            trace("End test--------------");
        }

        public function userSelectedHandler( event:MouseEvent ):void {
            for each( var item:BonusItemViewLogic in line_items ) {
                (item.content as MovieClip).mouseEnabled = false;
                (item.content as MovieClip).mouseChildren = false;
            }
            var item_btn:BonusItemViewLogic = event.currentTarget as BonusItemViewLogic;
            dispatchEvent( new EventTrans( Event.SELECT, item_btn.id ) );
        }
...