movieClip不响应鼠标单击

时间:2011-11-26 16:40:06

标签: flash air movieclip

我遇到这样的问题: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 ) );
        }

0 个答案:

没有答案