2011-12-01 78 views
0

我将相同的图像(播放按钮)添加到影片剪辑,这些图像稍后按下时会切换状态并播放视频。dispatchEvent发射MouseEvent不起作用

我试图完成的是自动切换默认图像,因为该视频正在自动播放。

 //Setup thumb Container 
     thumbs = new Sprite(); 
     thumbs.addEventListener (MouseEvent.CLICK, playVideo); 
     thumbs.x = thumbs_x; 
     thumbs.y = thumbs_y; 
      thumbs.buttonMode = true; 
      main_container.addChild (thumbs); 
    //Call Function that gets all the thumbs using loader and adds it to the thumb movieClip 

    callThumbs(); 
    setDefaultButton(); 

    function callThumbs():void { 



     for (var i:Number = 0; i < my_total; i++) { 



       var thumb_url = my_videos[i][email protected]; 
       var thumb_loader = new Loader(); 
       thumb_loader.name = i; 
       trace(thumb_loader.name); 
       thumb_loader.load (new URLRequest(root_path + thumb_url)); 
       thumb_loader.contentLoaderInfo.addEventListener (Event.COMPLETE, thumbLoaded); 
       thumb_loader.y = (thumb_height+210)*i; 

    } 

     function thumbLoaded (e:Event):void { 
     var my_thumb:Loader = Loader(e.target.loader); 
     thumbs.addChild (my_thumb); 
    } 


function setDefaultButton():void { 
thumbs.getChildAt(0).dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
//or 
thumbs.getChildByName('0').dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
} 

所以这和单击第一个图像是一样的,但它会自动发生。

THIS IS MY错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at LowesPlayerCS4_fla::MainTimeline/setDefaultButton() 
    at LowesPlayerCS4_fla::MainTimeline/processXML() 
    at flash.events::EventDispatcher/dispatchEventFunction() 
    at flash.events::EventDispatcher/dispatchEvent() 
    at flash.net::URLLoader/onComplete() 

回答

1

尝试添加thumb_Loader到显示列表中callThumbs而非thumbLoaded。

+0

你是否必须等待这个thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,thumbLoaded);你可以添加它之前? – Denoteone

+0

不需要。装载者在装载之前不会有任何东西,但是一旦它们被装载,你就会看到它们。您可以添加一个空的加载程序到显示列表,就像您可以添加一个空的Sprite一样。 –

+0

非常感谢+1 – Denoteone