2008-12-03 58 views
3

鉴于以下闪光方法:如何将可变参数作为扩展列表传递给方法?

function sendToJava(name:String, ... args) 
{ 
    ExternalInterface.call("sendCommand", name, args); 
} 

如何确保ExternalInterface.call()解释以展开形式ARGS?现在,如果我将一个列表传递给“args”,该列表将被ExternalInterface.call()解释为类型为“Object []”的单个参数。当参数到达Java时,我无法区分用逗号分隔的多个参数与包含逗号作为其值的一部分的单个参数之间的区别。

+0

这只与ActionScript 2相关,对吗?这应该澄清 - 只是一个“Flash”标签在这一点上是非常模糊的。 – IQpierce 2010-01-08 21:20:41

+0

@Ippierce,什么标签适用于ActionScript2? – Gili 2010-01-13 20:50:21

回答

5

一个小错字。它应该是:

function sendToJava(name:String, ... args) 
{ 
    // See Array.unshift() 
    args.unshift("sendCommand", name); 

    // See Function.apply() 
    ExternalInterface.call.apply(null, args); 
} 

只是改变“阵列”到“应用”

不管怎么说,感谢一吨张贴此。你是一个救星!

1

我发现IRC答案:)

function sendToJava(name:String, ... args) 
{ 
    // See Array.unshift() 
    args.unshift("sendCommand", name); 

    // See Function.apply() 
    ExternalInterface.call.array(null, args); 
} 
相关问题