<acronym id="atkaq"></acronym>
      <bdo id="atkaq"></bdo>

      天才教育網(wǎng)合作機構(gòu) > 培訓(xùn)機構(gòu) >

      東莞設(shè)計培訓(xùn)網(wǎng)

      歡迎您!
      朋友圈

      全國統(tǒng)一學(xué)習專線 9:00-21:00

      位置:培訓(xùn)資訊 > flash中的stop之bug篇

      flash中的stop之bug篇

      日期:2005-12-23 00:00:00     瀏覽:745    來源:東莞設(shè)計培訓(xùn)網(wǎng)
      flash最簡單語句之一,stop,經(jīng)考驗,存在bug,如下:

      stop語句的功能是停止當前(this)動畫的播放,停止在當前幀。
      但是有1些例外,使得動畫所停止的位置并非執(zhí)行stop語句所在的幀位置。如在第1幀運行stop,可能會停在第2幀。

      以下例子:

      建立1個空fla文件,在第1幀寫:

      stop();
      trace(_currentframe);//顯示所在幀的位置。

      在第7幀插入1個空關(guān)鍵幀,寫下如下代碼:


      this.onEnterFrame=function (){
      this.gotoAndPlay(2);
      this.onEnterFrame=undefined;
      trace("enterFrame");
      }

      這些語句使動畫跳轉(zhuǎn)到第2幀。
      完成后在flash ide中測試該文件,首先output面板中顯示
      1

      這時flash停在第1幀,是正確的;然后按下回車,使主場經(jīng)動畫繼續(xù)播放,這時,在output面板中顯示的是

      1
      enterframe
      2


      如果將第7幀中的goto改稱this.gotoAndPlay(3),output面板中就會顯示3.
      這是stop語句的bug,使得動畫停在錯誤的位置。究其原因,其實都是事件處理函數(shù)引起的,純粹的幀AS不會出現(xiàn)這種問題。
      問題出現(xiàn)的地方從第7幀開始,這1幀中,我們設(shè)置了1個onEnterFrame函數(shù),并在函數(shù)的*刪除的函數(shù)自己,他的功能是使得函數(shù)體只執(zhí)行1次,而且,onEnterFrame函數(shù)被設(shè)置后不會馬上執(zhí)行,下1幀才會起作用,所以,這段as的功能也是延遲1幀執(zhí)行某些操作(很多AS代碼中都用到了這個)。

      所以,當動畫再回到第1幀時,flash要執(zhí)行2部分代碼,1個是onEnterFrame得函數(shù)體,1個是幀代碼。但通常,幀代碼是在事件處理代碼后面執(zhí)行的,第1幀的所有代碼就為:

      this.gotoAndPlay(2);
      stop();

      而且,as的運行方法是先把所有的代碼放入1個隊列,然后逐次運行。所以,雖然首先跳轉(zhuǎn)到了第2幀,但第1幀的stop仍然會執(zhí)行,以致*的結(jié)果就是停在了第2幀。

      這個bug也由其他的事件處理函數(shù)引起,如onKeyDown等。產(chǎn)生這個問題的根本原因就是stop所在的幀位置和當前實際的幀位置不同。也就是說,_currentframe屬性和stop語句的幀位置不同,所以,我們可以通過判斷_currentframe屬性的值來避免這個bug。
      當flash執(zhí)行晚onEnterFrame中的this.gotoAndPlay(2)時,_currentframe已經(jīng)被指定為2,這個是正確的,只需將第1幀
      語句改稱:

      if (_currentframe==1) stop();

      就可以避免stop停止在錯誤的位置。根據(jù)需要,也可以改成:

      gotoAndStop(1);

      即,無論在什么地方,都回到第1幀并停止。

      如果本頁不是您要找的課程,您也可以百度查找一下:

      亚洲无碼另类精品_亚洲天堂无码高清性视频_欧美日韩一区二区综合_亚洲午夜福利理论片在线贰信

        <acronym id="atkaq"></acronym>
        <bdo id="atkaq"></bdo>

        亚洲精品在线观看视频 | 在线观看免费视频色 | 亚洲欧美在线a免费线上看 一级国产精品免费观看 | 在线人成精品免费视频 | 亚洲欧美日韩愉拍自拍 | 中文字幕福利视频 |