我们将 .swf Flash 动画嵌入到 Visual Basic 应用程序中。
我正在尝试使用以下代码读取动画中名为“bob”的文本字段的内容;
TextBox1.Text = AxShockwaveFlash1.GetVariable("bob")
执行时 textbox1 中的输出为 "_level0.bob" ???
这与动画中的实际文本不同,并且知道如何访问它?
尝试过 bob.text 等。
谢谢
菲尔
我们将 .swf Flash 动画嵌入到 Visual Basic 应用程序中。
我正在尝试使用以下代码读取动画中名为“bob”的文本字段的内容;
TextBox1.Text = AxShockwaveFlash1.GetVariable("bob")
执行时 textbox1 中的输出为 "_level0.bob" ???
这与动画中的实际文本不同,并且知道如何访问它?
尝试过 bob.text 等。
谢谢
菲尔
正确找到了一个适用于 as3 和 VB 的解决方案,它是从其他一些解决方案拼凑而成的,您需要在动作脚本中使用外部接口这里是 AS3 和 VB 中的代码。发送两个字符串小时和分钟。
AS3
function TimeUpdate(o:Object)
{
var r:String = "";
for (var v in o)
//Move the values from visual basic to mins and hours
if (v = "mins") mins = o[v];
if (v = "hours") hours = o[v];
time.text = hours + ":" + mins;
return "TimeUpdate was called";
}
if (ExternalInterface.available)
ExternalInterface.addCallback('TimeUpdate', TimeUpdate);
视觉基础
Dim x As String
x = "<invoke name=""TimeUpdate"" returntype=""xml"">"
x = x & "<arguments>"
x = x & "<object>"
x = x & "<property id='hours'><string>2</string></property>"
x = x & "<property id='mins'><string>33</string></property>"
x = x & "</object>"
x = x & "</arguments>"
x = x & "</invoke>"
Dim responce As String
responce = AxShockwaveFlash1.CallFunction(x)
MsgBox(responce )
希望这对人们有用。
菲尔
我认为你遇到的问题是双重的。首先,您需要能够以某种方式知道 swf 已准备好。我试图让它在 VBA 应用程序中工作一次(访问),但我永远无法可靠地让它工作。
您需要意识到的第二件事是 TextField 是 TextField 类型,而不是 String。