blog.Ring.idv.tw

事件處理-「onClipEvent」vs.「MovieClip.onXXX」變數範圍

事件處理-「onClipEvent」vs.「MovieClip.onXXX」變數範圍

「onClipEvent」and「MovieClip.onXXX」變數範圍

我們建立一個MovieClip在Stage上,並將它命名為「a_mc」,並在此MovieClip上加些程式以便驗證。

onClipEvent(load)
{
	var bar = 10;
}

在MainTimeline[1]寫入下述程式:

a_mc.onLoad = function()
{
	var foo = 20;
}

在MainTimeline[2]寫入下述程式:

trace("a_mc(bar):"+a_mc.bar);
trace("a_mc(foo):"+a_mc.foo);
stop();

結果:

a_mc(bar):10
a_mc(foo):undefined

結果卻不如預期(bar=10,foo=20),這是因為任何宣告在「function」中的變數都將被視為「區域變數(local variables)」,而由於「onClipEvent」或「on」事件都必須附著在實體的「MovieClip」之上,所以無論哪一種事件,只要宣告在「MovieClip」的變數都將為「實體變數(instance variables)」

值得一提的是「MovieClip.onXXX」的作法,其實就像是C語言中的「函式指標(function pointer)」,可以用來指向一個「function」,這也是寫Linux Kernel的相關程式時,所必要的技能。

範例下載

2007-05-22 18:23:18

Leave a Comment

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

::: 搜尋 :::

::: 分類 :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment