loadMovie/loadMovieNum 使用詳解

來源:互聯網
上載者:User
詳解
  在論壇技術區裡待了這麼久,發現對於這兩個函數大家問的比較頻繁,今天就在這裡結合我自己的經驗,詳細的寫一篇教程,希望能給大家以後的使用帶來協助。


  一、loadMovie("url",target [, method])
  描述:函數;在播放原始 SWF 檔案的同時將 SWF 檔案或 JPEG 檔案載入到   Flash Player 中目標影片剪輯的路徑。
  首先我們可以看到該函數有3個參數:url、target、method。其中,最後一個參數“method”是一個選擇性參數。

  1.參數url:要載入的 SWF 檔案或 JPEG 檔案的絕對或相對 URL(路徑)。
  這就是說這個url可以是本地的檔案路徑,也可以是Internet上的檔案地址。但是,無論從何處載入,都只能是 SWF 或 JPEG 檔案。並且,該參數是一個字串,所以必須寫在半形雙引號中——
loadMovie("01.swf", _root)
loadMovie("01.jpg", _root)
loadMovie("http://www.abc.com/01.swf", _root)
loadMovie("01.jpg", _root)
……

  2.參數target:指向目標影片剪輯的路徑。目標影片剪輯將替換為載入的 SWF 檔案或映像。
  這個參數表示要影片將被載入到的路徑,它指向目標影片剪輯的路徑。載入後,目標影片剪輯將替換為載入的 SWF 檔案或映像。——
loadMovie("01.swf", _root)
loadMovie("01.swf", _root.loading)
loadMovie("01.swf", _root.loading.01)
……

  3.參數method:選擇性參數,指定用於發送變數的 HTTP 方法。該參數必須是字串 GET 或 POST。如果沒有要發送的變數,則省略此參數。GET 方法將變數追加到 URL 的末尾,它用於發送少量的變數。POST 方法在單獨的 HTTP 標題中發送變數,它用於發送大量的變數。


  二、loadMovieNum("url",level [, variables])
  描述:函數;在播放原來載入的 SWF 檔案的同時將 SWF 檔案或 JPEG 檔案載入到 Flash Player 中的某個層級。
  首先我們可以看到該函數有3個參數:url、target、variables。其中,最後一個參數“variables”是一個選擇性參數。

  1.參數url:要載入的 SWF 檔案或 JPEG 檔案的絕對或相對 URL(路徑)。
  該函數的此參數和上面loadMovie中的此參數用法完全一致,這裡不再作解釋。

  2.參數level:一個整數,指定 SWF 檔案將載入到 Flash Player 中的哪個層級。
  載入的時候,可以這樣來寫:
loadMovieNum("01.swf", 1);
loadMovieNum("01.swf", 2);
loadMovieNum("01.swf", 3);
……
  控制的時候,可以這樣使用:
_level1._x=10
_level2.aa._alpha=50
_level3.aa.bb._width=110
……
  需要注意的的是,每一個層級只能同時存在一個 SWF 或 JPEG 檔案。如果兩個 SWF 或 JPEG 檔案的層級相同,那麼後者將替換掉前者。層級不同的_level,層級大的將覆蓋掉層級小的,即:數字大的將處於數字小的之上。

  3.參數variables:選擇性參數,指定發送變數所使用的 HTTP 方法。該參數必須是字串 GET 或 POST。如果沒有要發送的變數,則省略此參數。GET 方法將變數追加到 URL 的末尾,它用於發送少量的變數。POST 方法在單獨的 HTTP 標題中發送變數,它用於發送大量的變數。


  三、loadMovie/loadMovieNum 的定位……

  1.loadMovie的定位
  由於用loadMovie載入進來的 SWF 或 JPEG 檔案,最後是放置於目標影片剪輯裡的,所以我們完全可以像控制MC的_x和_y,來控制載入到的目標影片剪輯。就好像我們在牆壁(_root)上掛上了一個相框(目標影片剪輯),然後又在相框裡面放入(載入)了一張相片(SWF 或 JPEG 檔案),那麼當我們想挪動相片的位置的時候,只要移動相框的位置就可以了。
  比如在主情境中有一個執行個體名為aa的MC(座標為(20,30)),我們要在裡面載入一個02.swf檔案,並且要載入後這個放到相框(_root.aa)中的相片(02.swf)出現在主情境(_root)座標系的(50,100)處。代碼如下:
  PHP代碼: loadMovie("02.swf", _root.aa);
_root.aa._x = 50;
_root.aa._y = 100;

  在實際應用中,其實更加傾向於用AS建立一個空MC,然後在這個MC中載入外部 SWF 或 JPEG 檔案。代碼如下:
PHP代碼: _root.createEmptyMovieClip("aa", 1);
with (aa) {
  _x = 50;
  _y = 100;
  loadMovie("02.swf");
}


  2.loadMovieNum的定位
  從前面我們已經知道了,函數loadMovieNum是將 SWF 或 JPEG 檔案載入到_level(層級)的。並且是用_level1._x、_level2._x、_level1.aa._x之類的來定位的。比如我們要將02.swf載入到主情境座標系的(50,100)中,代碼如下:
PHP代碼: loadMovieNum("02.swf", 1);
_level1._x = 50;
_level1._y = 100;

  但是在測試的時候大家會發現載入進來的02.swf並沒有如我們預期的那樣出現在主情境座標系的(50,100)位置,這是為什麼呢?
  原來,在沒有使用loadMovieNum以前,所有的圖形、MC等等都是處於_level0裡的,我們通常使用的_root其實就是_level0。你可以作個測試:trace(_root==_level0),你會發現傳回值是“true”。
  那麼,我們用loadMovieNum載入 SWF 或 JPEG 檔案的時候,程式就要對你指定的_level進行建立,隨後再緊接著載入 SWF 或 JPEG 檔案。如果像剛才代碼中寫的那樣,不判斷_level是否存在而調用其屬性,勢必無功而反。
  解決的方法也很簡單,就是用一個迴圈來判斷指定的_level是否存在。一旦_level產生,那麼它的種種屬性自然可以調用了。代碼如下:
PHP代碼: loadMovieNum("02.swf", 1);
onEnterFrame = function () {
  if (_level1) {
    with (_level1) {
      _x = 50;
      _y = 100;
    }
    delete onEnterFrame;
  }
};

  或者:
PHP代碼: loadMovieNum("02.swf", 1);
function go() {
  if (_level1) {
    with (_level1) {
      _x = 50;
      _y = 100;
    }
    clearInterval(fps);
  }
}
fps = setInterval(go);

  再或者大家可以使用Macromedia Flash MX 2004中的MovieClipLoader類來判斷載入狀態。(具體使用方法情參閱相關教程)

  轉載於閃客帝國,作者:棉花糖


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。