2011-11-07 96 views
0

是否有一種簡單的方法可以將另一個動態加載的movieClip的movieClip切換出來?切換子視頻剪輯立即播放/正在播放按鈕

我有和eventListener onCLICK,當它被選中時,它啓動一個FLVPlayback,但我還想換出另一個movieClip立即播放/正在播放按鈕。

只是一些背景。我正在循環並將播放按鈕jpg加載到一個影片剪輯中,並將增量編號作爲名稱分配給播放按鈕影片剪輯。點擊播放按鈕播放電影,但現在我還想將播放按鈕圖形切換爲現在播放的圖形。

//ADD EVENT LISTENER TO ALL MY THUMBS_BUTTON 
    thumbs_button.addEventListener (MouseEvent.CLICK, playVideoThumb); 

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

     var playButton_url = "play_now.png"; 
     var playButton_loader = new Loader(); 
     playButton_loader.name = i; 
     playButton_loader.load (new URLRequest(root_path + playButton_url)); 
     playButton_loader.contentLoaderInfo.addEventListener (Event.COMPLETE, playButtonLoaded); 
     playButton_loader.y = (115 * i) + (135 * i) + 138; 


//PUT NEW LOADED IMAGE INTO THUMBS_BUTTON 
function playButtonLoaded (e:Event):void { 
    var my_playButton:Loader = Loader(e.target.loader); 
    thumbs_button.addChild (my_playButton); 
} 


//THIS IS WHERE I NEED TO REMOVE THE PLAY NOW AND PUT IN THE NOW PLAYING BUTTON 
function playVideoThumb (e:MouseEvent):void { 
    var video_url = root_path + my_videos[e.target.name][email protected]; 
    my_player.source = video_url; 
    var blank_butt:Number = thumbs_button.getChildByName(e.target.name).x; 
    thumbs_button.removeChild(thumbs_button.getChildByName(e.target.name)); 
} 

回答

1

看着你的代碼我假設你可能想要一個類似功能的單選按鈕。有幾種方法可以做到這一點。一種方式是通過刪除和添加的兒童或者在下面只使用可見性的情況下:

// will contain hidden button 
var hidden_button: DisplayObject = null; 
// playing now button 
var playingNow_button: Loader; 

//ADD EVENT LISTENER TO ALL MY THUMBS_BUTTON 
thumbs_button.addEventListener (MouseEvent.CLICK, playVideoThumb); 

for (var i:Number = 0; i < my_total; i++) { 
    var playButton_url: String = "play_now.png"; 
    var playButton_loader: Loader = new Loader(); 
    playButton_loader.name = i; 
    playButton_loader.load (new URLRequest(root_path + playButton_url)); 
    playButton_loader.contentLoaderInfo.addEventListener (Event.COMPLETE, playButtonLoaded); 
    playButton_loader.y = (115 * i) + (135 * i) + 138; 
} 
// load playingNow graphic 
playingNow_button = new Loader(); 
playingNow_button.load(new URLRequest(root_path + 'playing_now.png')); 
playingNow_button.contentLoaderInfo.addEventListener (Event.COMPLETE, playingNowLoaded); 


//PUT NEW LOADED IMAGE INTO THUMBS_BUTTON 
function playButtonLoaded (e:Event):void { 
    var my_playButton:Loader = Loader(e.target.loader); 
    thumbs_button.addChild (my_playButton); 
} 

//ADD PLAYING_NOW BUT HIDE 
function playingNowLoaded (e:Event):void { 
    playingNow_button.visible = false; 
    thumbs_button.addChild (playingNow_button); 
} 


//THIS IS WHERE I NEED TO REMOVE THE PLAY NOW AND PUT IN THE NOW PLAYING BUTTON 
function playVideoThumb (e:MouseEvent):void { 
    // exit if user clicked playing Now button 
    if (e.target == playingNow_button) return; 
    // also exit if user clicked on something that is not a loader 
    if (!(e.target is Loader)) return; 
    // show hidden button (if any) 
    if (hidden_button != null) hidden_button.visible = true; 
    // assign current button to hidden_button 
    hidden_button = DisplayObject(e.target); 
    // copy location, scale and rotation 
    playingNow_button.transform.matrix = hidden_button.transform.matrix; 
    // show playingNow and hide button 
    playingNow_button.visible = true; 
    hidden_button.visible = false; 
    // play video 
    var video_url = root_path + my_videos[e.target.name][email protected]; 
     my_player.source = video_url; 
} 

如果您不需要加載按鈕的任何處理,就可以馬上加入載入對象到thumbs_button。您不必在COMPLETE處理程序中執行此操作。

+0

+1感謝我現在測試的信息。但我從來沒有想過只需加載並使用可見性設置。 – Denoteone

+0

完美運作。 – Denoteone

+0

很好讀,快樂編碼:) – Josha