2013-10-21 37 views
1

我已經以下代碼以在一個循環中運行一個電影並且還允許幀之間移動使用按鈕:影片剪輯顯示黑屏

stage.displayState="fullScreen"; 
//stage.scaleMode = StageScaleMode.NO_SCALE; 



trace("THIS IS ROOT"); 

var myTimer:Timer = new Timer(10000); // 10 second 
myTimer.addEventListener(TimerEvent.TIMER, runFrames); 
myTimer.start(); 

function runFrames(event:TimerEvent):void { 
    var myTotNum = MainMovie.totalFrames; 
    var q = MainMovie.currentFrame; 

    trace("q , " + q + " total " + myTotNum); 

    if (q < myTotNum) { 
     trace("in frame "+q); 
     while (MainMovie.numChildren > 0) { 
      MainMovie.removeChildAt(0); 
      trace("removed child _1. remaining count= "+MainMovie.numChildren); 
     } 
     MainMovie.nextFrame(); 
     LoadInData();  
    } 
    if (q == myTotNum) { 
     while (MainMovie.numChildren > 0) { 
      MainMovie.removeChildAt(0); 
      trace("removed child. myTotNum, remaining count= "+MainMovie.numChildren); 
     } 
     MainMovie.gotoAndStop(1); 
    } 
}// if (q < myTotNum) 


// TEMP Element 
function setup() { 
    stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyPressed); 
} 
setup(); 
function KeyPressed(evt:KeyboardEvent):void { 
    switch (evt.keyCode) { 
     case Keyboard.UP : 
      MainMovie.prevFrame(); 
      resetMyTimer(); 
      break; 
     case Keyboard.DOWN : 
      MainMovie.nextFrame(); 
      resetMyTimer(); 
      break; 
     case Keyboard.LEFT : 
      MainMovie.prevFrame(); 
      resetMyTimer(); 
      break; 
     case Keyboard.RIGHT : 
      MainMovie.nextFrame(); 
      resetMyTimer(); 
      break; 
    } 
} 

//button next 
this.navBtnNext.addEventListener(MouseEvent.CLICK,navBtnNextCLICK); 

function navBtnNextCLICK(e:MouseEvent):void { 
    resetMyTimer(); 
    MainMovie.nextFrame(); 
} 
//button previous 
this.navBtnPrev.addEventListener(MouseEvent.CLICK,navBtnPrevCLICK); 

function navBtnPrevCLICK(e:MouseEvent):void { 
    resetMyTimer(); 
    MainMovie.prevFrame(); 
} 

function resetMyTimer() { 
    myTimer.reset(); 
    myTimer.start(); 
} 


//----------------------------------------------- vars 
    //----- generalImages 
    var MainImage_01:MovieClip = new img01(); //hotDog 
    var MainImage_02:MovieClip = new img02(); //pepsi 2fer 
    var MainImage_04:MovieClip = new img04(); //gatorade 2 fer 


    MainImage_01.x = MainImage_01.y = 0; 


    var MainBg:MovieClip = new allBg_01(); 
    var SecondBg:MovieClip = new allBg_02(); 
    MainBg.x = MainBg.y = SecondBg.x = SecondBg.y = 0; 

     //-----prices 
     var MainPrice_01:MovieClip = new price_01(); 
     MainPrice_01.x = MainPrice_01.y = 0; 

     var SecondPrice_01:MovieClip = new price_01_02(); 
     SecondPrice_01.x = SecondPrice_01.y = 0; 

     var ThirdPrice_01:MovieClip = new price_01_03(); 
     ThirdPrice_01.x = ThirdPrice_01.y = 0; 

     //-----orderConfirmation 
     var OrderItem_01:MovieClip = new orderItem10(); 
     OrderItem_01.x = OrderItem_01.y = 0; 

//----------------------------------------------- EventListener 

addEventListener(Event.ENTER_FRAME, LoadData); 


//----------------------------------------------- Load here - all Items 
function LoadData(event:Event):void { 
    LoadInData(); 
}//function LoadData 


function LoadInData():void{ 
    var M = MainMovie.currentFrame; 
    trace("M , " + M); 

    while (MainMovie.bg.numChildren > 0) { 
      MainMovie.bg.removeChildAt(0); 
      this.MainMovie.imageControl.removeChildAt(0); 
      this.MainMovie.priceControlA.removeChildAt(0); 
      //this.MainMovie.textControl.textControlTXT.text = "PRINT IT NOW 1"; 
      this.MainMovie.MyOrder.itemControl.removeChildAt(0); 
      trace("MainMovie.bg.numChildren, remaining count= "+MainMovie.numChildren); 
     } 

    if (M == 1) { 
     trace("in frame "+M); 
     this.MainMovie.bg.addChild(MainBg); 
     this.MainMovie.imageControl.addChild(MainImage_01); 
     this.MainMovie.priceControlA.addChild(MainPrice_01); 
     this.MainMovie.textControl.textControlTXT.text = "PRINT IT NOW 1"; 
     this.MainMovie.MyOrder.itemControl.addChild(OrderItem_01); 
     this.MainMovie.MyOrder.MyTotal.text = "$31"; 
    }//if (M == 1) 



    if (M == 2) { 
     trace("in frame "+M); 
     this.MainMovie.bg.addChild(MainBg); 
     this.MainMovie.imageControl.addChild(MainImage_02); 
     this.MainMovie.priceControlA.addChild(MainPrice_01); 
     this.MainMovie.textControl.textControlTXT.text = "PRINT IT NOW 2"; 
     this.MainMovie.MyOrder.itemControl.addChild(OrderItem_01); 
     this.MainMovie.MyOrder.MyTotal.text = "$32"; 
    }//if (M == 2) 


    if (M == 3) { 
     trace("in frame "+M); 
     this.MainMovie.bg.addChild(MainBg); 
     this.MainMovie.imageControl.addChild(MainImage_04); 
     this.MainMovie.priceControlA.addChild(MainPrice_01); 
     this.MainMovie.textControl.textControlTXT.text = "PRINT IT NOW 3"; 
     this.MainMovie.MyOrder.itemControl.addChild(OrderItem_01); 
     this.MainMovie.MyOrder.MyTotal.text = "$33"; 
    }//if (M == 3) 


    else { 

    }//else 
} 

出於某種原因,當我使用按鈕直接改變幀(調用LoadData()) 電影幀更改確定,但是當從runFrames的定時器調用相同的代碼時,我只能看到一個黑屏,我看到LoadInData()中的代碼是使用跟蹤,但電影仍然沒有顯示第二和第三幀。

感謝, 奧馬爾

+1

看起來您正在刪除該'runFrames'循環中框架中的所有內容。 – whodeee

+0

是的,這是問題的感謝。如果你想發佈一個答案,我會很高興upvote。 –

+0

我現在發佈了一個答案:-) – whodeee

回答

1

在你runFrames功能刪除while loops,那些被刪除的幀中的所有內容。