2011-06-12 70 views
3

我在Windows窗体应用程序中有一个AxShockwaveFlash对象,并通过LoadMovie加载(AS3)电影。电影播放正确,但我从闪光灯获取变量时遇到问题。从闪存中检索变量值

我试过使用GetVariable,但它总是返回一个空字符串。我如何从闪存中获取变量的值?

+0

您是否有权访问Flash的源代码? – 2011-06-12 21:14:54

+0

@亚当不,它是一个任意的Flash视频。一个youtube视频atcually,从'youtube.com/v/whatever' – 2011-06-12 21:58:54

+0

@Seth那么你想从Flash中获得什么变量? – 2011-06-13 01:24:32

回答

1

我认为AVM2新的安全策略需要你明确地暴露使用ExternalInterface的容器应用程序的变量/函数。

如果你不能编辑swf,我想不出有办法访问它们。不过,使用AS2很容易,如果你定义了它,你可以通过javascript/C#/无论在swf中没有任何额外的代码来获取和设置它。

0

呦可以使用fscommand方法从Shockwave播放器跟C#:

fscommand("sendCmd", arg); 

赶在C#中使用值

flashPlayer.FSCommand += new AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEventHandler(flashPlayer_FSCommand); 
.... 
void flashPlayer_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e) 
{ 
    tbOut.Text += e.command + " (" + e.args + ")" + "\r\n"; 
} 
+0

这是行不通的,因为正如问题评论中提到的那样,它使用的是预编译的SWF,因此无法在ActionScript中添加fscommand代码。 – 2011-06-13 08:21:32

+0

@ AdamHarte,这是伤心:( – Eugeny89 2011-06-13 08:30:45

+0

但谢谢你尝试:( – 2011-06-13 14:10:44