2008-09-02 119 views
1

我試圖在將一些XML加載到ActionScript後調用函數,我只是想知道如何調用該函數。例如:函數內調用函數 - Flash ActionScript 2.0

//Function Declarations 
function parentFunction() 
{ 
    function callMe() 
    { 
    textField.text = "lawl"; 
    } 
} 

現在,我怎麼叫「呼我()」函數在代碼的不同部分,像onRelease功能?

on(release) 
{ 
callMe(); //doesn't work 
parentFunction().callMe(); //doesn't work 
parentFunction.callMe(); //doesn't work 
} 

ActionScript 2.0簡直太不可思議了!有任何想法嗎?

回答

2

你不得不在parentFunction中聲明callMe嗎?我想是因爲否則你將只是做

功能父(){} 功能呼我(){}

需要明確的是,一個功能不能擁有其他功能,除非你提供了該功能有一定範圍生活在。

所以在JavaScript中,你可以通過使用原型對象來聲明callMe函數作爲parentFunction返回的對象的方法。

http://www.howtocreate.co.uk/tutorials/javascript/objects

對於ActionScript,閱讀這篇文章對Adobe的網站: http://www.adobe.com/devnet/flex/articles/as_collections_03.html

編輯:一些更多的閱讀後,它會出現你沒有的東西,你實際上是宣佈呼我爲私人功能的方式。看到這篇文章應該讓整個private/public javascript issue更容易理解。

0

我是個白癡。我忘了整個「一個功能不能擁有另一個功能」的東西,所以我想出了另一種方式來做到這一點。謝謝!

0

當然一個函數可以「擁有」另一個函數。這是ECMAScript記住。只需在函數中聲明一個變量併爲其分配一個函數即可。然後你可以使用「call」方法調用你的函數。

function foo() trace(「foo」);

var bar = function() 
{ 
    trace("bar"); 
}; 

bar.call(); 

}

FOO();

0
//v--- on the frame 
function callMe(){ 
textArea.text='lawl'; 
} 
//v---- for button 
on(release){ 
callMe(); 
} 

--- or ----- 

//CUSTOM!! 
//v---- on frame 
function callMe(say){ 
textArea.text=say; 
} 
//v--- for button 
on(release){ 
callMe('lawl'); 
} 
0

對不起,我的英語不好, 設置一個用於(菜單 - )按鈕,位於一個MC whitch處理程序。

舞臺上

MC 「按鈕」(在它3 「testbtn」)@第一幀:

function SetMethod(Method:Function){ 
    //trace(Method.call()); 
    //or something like: 
    testbtn1.addEventListener(MouseEvent.CLICK, Method); 
    testbtn2.addEventListener(MouseEvent.CLICK, Method); 
    testbtn3.addEventListener(MouseEvent.CLICK, Method); 
} 

階段(具有MC 「Butttons」 在它)@第一幀:

function TheMenuListener(evt:Event):void{ 
    trace(evt.target.name); 

} 
... 
Buttons.SetMethod(this.TheMenuListener); 

返回testbtn。命名

編輯:哦,it's爲AS3,但也許會有所幫助!