将 data/variable 从 Visual Basic 窗体传递到 Flash 对象
Passing data/variable from a Visual Basic form to a Flash Object
我很确定这可以在 Whosebug 的某个地方得到解答,但我对此没有选择。
我有一个带有按钮对象的 VisualBasic 窗体。我希望那个按钮有一个 onClick 过程,这样点击它就可以将一个变量或其他命令传递给另一个 window,它有一个 Shockwave Flash "movie" 运行。 (例如,在 Flash 文件的 ActionScript 上有一个函数可以在调用时在 Flash 视频 运行 中显示一些文本。)
我缺少什么才能使这成为可能?我知道它与 fscommand
有关,但不确定如何使用它从 VB 传递变量。
方法是在 AS3 中使用 ExternalInterface class。它允许数据在 AS3 和主机 application/container(网页或 VB 表单等)之间传递。
在AS3端,你设置如下:
function myAS3Function(someNumber:Number, someObject:Object)
{
//do something with your number and object
trace(someObject.isAwesome);
return "hello from AS3";
}
//register your function with a label VB can call/invoke
if (ExternalInterface.available){
ExternalInterface.addCallback("myAS3Function", myAS3Function);
}
从主机端,您 send/recieve XML 到 ActiveX 对象。
您的 XML 看起来像这样:
<invoke name="myAS3Function" returntype="xml">
<arguments>
<number>5</number>
<object>
<property id="foo"><string>bar</string></property>
<property id="isAwesome"><true/></property>
</object>
</arguments>
</invoke>
现在,在 VB 中构造 XML,并调用 VB flash 对象的 CallFunction
方法,将 xml 字符串传递给它。
Dim returnValue As String
returnValue = MyFlashShockWaveObj.CallFunction(xml)
MsgBox(returnValue) 'hello from flash
如果您要传递大量对象,有时最简单的方法是只 JSON.stringify 它们并只传递一个 JSON 字符串到 AS3(and/or 返回)。
我很确定这可以在 Whosebug 的某个地方得到解答,但我对此没有选择。
我有一个带有按钮对象的 VisualBasic 窗体。我希望那个按钮有一个 onClick 过程,这样点击它就可以将一个变量或其他命令传递给另一个 window,它有一个 Shockwave Flash "movie" 运行。 (例如,在 Flash 文件的 ActionScript 上有一个函数可以在调用时在 Flash 视频 运行 中显示一些文本。)
我缺少什么才能使这成为可能?我知道它与 fscommand
有关,但不确定如何使用它从 VB 传递变量。
方法是在 AS3 中使用 ExternalInterface class。它允许数据在 AS3 和主机 application/container(网页或 VB 表单等)之间传递。
在AS3端,你设置如下:
function myAS3Function(someNumber:Number, someObject:Object)
{
//do something with your number and object
trace(someObject.isAwesome);
return "hello from AS3";
}
//register your function with a label VB can call/invoke
if (ExternalInterface.available){
ExternalInterface.addCallback("myAS3Function", myAS3Function);
}
从主机端,您 send/recieve XML 到 ActiveX 对象。
您的 XML 看起来像这样:
<invoke name="myAS3Function" returntype="xml">
<arguments>
<number>5</number>
<object>
<property id="foo"><string>bar</string></property>
<property id="isAwesome"><true/></property>
</object>
</arguments>
</invoke>
现在,在 VB 中构造 XML,并调用 VB flash 对象的 CallFunction
方法,将 xml 字符串传递给它。
Dim returnValue As String
returnValue = MyFlashShockWaveObj.CallFunction(xml)
MsgBox(returnValue) 'hello from flash
如果您要传递大量对象,有时最简单的方法是只 JSON.stringify 它们并只传递一个 JSON 字符串到 AS3(and/or 返回)。