blog.Ring.idv.tw

「unloadMovie()」vs.「removeMovieClip()」差異(一)

「unloadMovie()」vs.「removeMovieClip()」差異(一)


在Flash開發之中,如果我們要移除一個MovieClip其實可以呼叫「MovieClip.unloadMovie()」或「MovieClip.removeMovieClip()」,雖然這兩個Method用起來感覺似乎差異不大,但其實骨子裡可是有相當多的細節要注意的~

呼叫「MovieClip.removeMovieClip()」之前,請先改變「depth」

假設我們在Stage上用「Rectangle Tool」建立一個正方形的MovieClip,然後試著呼叫程式一程式二來移除~

程式一

on(release)
{
	this.unloadMovie();
}

程式二

on(release)
{
	this.removeMovieClip();
}

我們可以發現程式二居然無法移除MovieClip,這是因為呼叫「MovieClip.removeMovieClip()」的時候,這個MovieClip的「depth」必須要為「正數」才能移除,換句話說~我們必須先呼叫「MovieClip.swapDepths()」Method,將「depth」的值改為「正數」然後再呼叫「MovieClip.removeMovieClip()」即可,如程式三

程式三

on(release)
{
	this.swapDepths(0);
	this.removeMovieClip();
}

所以若是透過「MovieClip.createEmptyMovieClip()」Method來建立MovieClip的話,就注意第二個參數「depth」值,即可避免這樣的問題,例如:採用「getNextHighestDepth()」來決定「depth」值,因為此Method所傳回的值必為0或更大的值。

P.S. 「MovieClip.unloadMovie()」較適合用「清除」來解釋之

範例下載

2007-05-29 16:04:19

2 comments on "「unloadMovie()」vs.「removeMovieClip()」差異(一)"

  1. 1. mai 說:

    加戴和移除是不是不能同一個??
    例如我按鈕有a b c
    當我點a時,載入11.swf,點b時,載入22.swf,點c時,載入33.swf
    一般來說會一直蓋上去也就是說從a~c時,載入就是11.swf+22.swf+33.swf
    雖然可以讀取,但是是不是這樣蓋上去的swf會容易出錯??

    那我又要怎麼移掉??

    b1_btn.onPress=function (){
    loadMovie("11.swf", mcBox);
    }
    b2_btn.onPress=function (){
    loadMovie("22.swf", mcBox);
    mcBox.unloadMovie()
    }

    這樣寫??

    2014-04-08 13:03:32

  2. 2. Ru 說:

    Mai 您好~ 不專業的路過,回答一下你的問題,以下方式,你在嘗試一下喔~

    你的例子應該在寫一個 function,來消除前面呼叫的 loadMovie();
    function delMc()
    {
    mcBox.swapDepths(0);
    mcBox.unloadMovie();
    }

    b1_btn.onPress=function (){
    delMc();
    loadMovie("11.swf", mcBox);
    }
    b2_btn.onPress=function (){

    delMc();
    loadMovie("22.swf", mcBox);

    }

    2022-03-08 18:12:09

Leave a Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment