簡體   English   中英

如何使null MovieClip成為函數?

[英]How make null MovieClip in function?

如何使null MovieClip成為函數? 我試過了:

function one()
{
var mc:MovieClip=new MovieClip();
two(mc);
}

function two(mcref:MovieClip)
{
mcref=null;
}

但不幸的是,它不起作用,並且“ mc”在函數后不為null。

它應該可以工作,試試這個:

package 
{
import flash.display.MovieClip;

public class Main extends MovieClip
{
    public var mc:MovieClip;

    public function Main():void 
    {
        mc = new MovieClip();
        trace("mc : " , mc);

        makeMovieClipNull();
        trace("mc 2: ", mc);
    }

    public function makeMovieClipNull():void
    {
        mc=null;
    }

}

}

這是范圍鏈問題。 如果將MovieClip傳遞給two()函數。 實際上沒有傳遞參考值。 因此,您無法在函數中訪問引用對象。 有效值或僅在功能范圍內執行。

閱讀此: AS3 Funciton

每當函數開始執行時,都會創建許多對象和屬性。 首先,創建一個稱為激活對象的特殊對象,該對象存儲參數以及函數體中聲明的任何局部變量或函數。 您不能直接訪問激活對象,因為它是一種內部機制。 其次,將創建一個范圍鏈,其中包含Flash Player或Adobe AIR檢查標識符聲明的對象的有序列表。 每個執行的函數都有一個作用域鏈,該作用域鏈存儲在內部屬性中。 對於嵌套函數,作用域鏈以其自己的激活對象開始,然后是其父函數的激活對象。 鏈以這種方式繼續,直到到達全局對象。 全局對象是在ActionScript程序啟動時創建的,並且包含所有全局變量和函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM