2009-10-23 73 views
1

我想从动作脚本调用JavaScript函数。从动作脚本调用JavaScript函数

截至目前,我正在使用'ExternalInterface'并可能取得部分成功。

我可以调用函数(没有任何范围分辨率),比如“scanDNA()”,它对所有人都是可见的。但我无法打电话给功能(范围指定),如 “Eukarya.Animalia.Chordata.Vertebrata.Gnathostomata.Tetrapoda.Mammalia.scanDNA()”。

请让我知道,我该如何做到这一点。

感谢和问候,

SachinJadhav。

回答

0

如何在JS中创建一个方法来调用函数?

function scanDNAinSomeScope(){ 
    Eukarya.Animalia.Chordata.Vertebrata.Gnathostomata.Tetrapoda.Mammalia.scanDNA(); 
} 

而且使用ExternalInterface称之为scanDNAinSomeScope

UPDATE:

是的,在这种情况下,你需要创建为每个范围功能。但是,你实际上只为你需要调用的函数创建。我相信不会有太多情况需要从Flash的不同范围调用函数。

而且有一种变通方法,使用像JS功能:

function evil(str){ 
    eval(str); 
} 

这可能是一个安全漏洞。但我不是安全专家,所以我不知道它实际上有什么问题......我只知道“eval是邪恶的”:P

+0

我认为这不是有用的... 我想要一种解决问题的方法...这是一种破解... – SachinJadhav 2009-10-24 05:48:10

+0

为什么你认为这是一种破解?你需要什么比这更多? – 2009-10-24 06:52:09

+0

你将不得不为每个范围创建这样的功能,而不是确实很好 – skrat 2009-10-27 10:15:23

0

我从来没有发现任何问题。你的javascript范围结构如何设置?

也许离开了 “()” 中的ExternalInterface调用可以做的伎俩..

如果我做

var animals = {} 
animals.mammals = {} 
animals.mammals.test = function() { 
    return "whee"; 
} 

和闪光灯(CS4)

var x:String = ExternalInterface.call('animals.mammals.test'); 
trace(x); 

我得到正确的结果。

0

使用JavaScript伪协议工作良好。