C# 从闪存中检索变量值

C# 从闪存中检索变量值,c#,flash,actionscript-3,variables,get,C#,Flash,Actionscript 3,Variables,Get,我在Windows窗体应用程序中有一个AxShockwaveFlash对象,并使用LoadMovie将(AS3)电影加载到其中。电影播放正确,但我在从flash获取变量时遇到问题 我尝试过使用GetVariable,但它总是返回空字符串。如何从flash中获取变量的值?您可以使用fscommand方法从shockwave player与C#对话: fscommand("sendCmd", arg); 要抓住C#中的价值,请使用 我认为AVM2的新安全策略要求您使用ExternalInterfa

我在Windows窗体应用程序中有一个
AxShockwaveFlash
对象,并使用
LoadMovie
将(AS3)电影加载到其中。电影播放正确,但我在从flash获取变量时遇到问题


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

您可以使用
fscommand
方法从shockwave player与C#对话:

fscommand("sendCmd", arg);
要抓住C#中的价值,请使用


我认为AVM2的新安全策略要求您使用ExternalInterface显式地向容器应用程序公开变量/函数


如果你不能编辑swf,我想不出一个方法来访问它们。使用AS2非常简单,如果你定义了它,你可以通过javascript/C#/任何东西获取和设置它,而不需要swf中的任何额外代码。

你可以访问Flash的源代码吗?@Adam不,这是一个任意的Flash视频。一段youtube视频,从
youtube.com/v/which
@Seth那么你想从Flash中得到什么变量呢?@Adam
\u level0.list
\u level0.title
\u level0.sk
\u level0.video\u id
:)@Seth一个AVM2 SWF(用ActionScript3制作)不再使用。这是一个旧的AVM1(AS2)的东西。您可能可以使用root.loaderInfo.parameters对象来访问这些变量,但我以前从未这样做过,因此未经测试。这不会起作用,因为正如问题注释中提到的,它使用的是预编译的SWF,因此无法在ActionScript中添加fscommand代码。
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";
}