在您的示例中,您將在定義內調用successFunction方法,而不是代碼執行時。您必須傳遞對該方法的引用,而不是調用它。看看下面的例子。如果使用apply方法,則可以將參數作爲Array傳遞。 *尼古拉斯
函數參考&函數調用
function myFunction(parameter:String):String
{
return 'hello '+parameter;
}
var myFunctionReference:Function = myFunction;
trace(myFunctionReference); // function Function() {}
trace(myFunctionReference('world')); // 'hello world'
var myFunctionReturnValue:String = myFunction('moon');
trace(myFunctionReturnValue); // 'hello moon'
工作實例
package
{
import flash.display.Sprite;
public class MethodTest extends Sprite
{
public function MethodTest()
{
trace('MethodTest Constructor');
trace('---');
invoke(successFunction,'first',{id:123,type:'foo'});
trace('---');
invokeByApply(successFunction,'second',{id:456,type:'bar'});
}
public function invoke(method:Function,someName:String, someObject:Object):void{
trace('MethodTest invoke');
method(someName,someObject);
}
public function invokeByApply(method:Function,...arguments):void{
trace('MethodTest invokeByApply');
method.apply(null,arguments);
}
public function successFunction(someName:String, someObject:Object):void{
trace('MethodTest successFunction');
trace('someName: '+someName);
for(var key:String in someObject)trace(key+': '+someObject[key]);
}
}
}
請給我們更多關於對象的代碼和信息,這些信息被傳遞給你的successFunction。 –
我想它基本上是不相關的,因爲閃光燈會實例化一個新的或不會,當然?該對象只是一個顯示對象,成功函數將舊對象與新對象進行交換。 – Toby