我们将.swf flash动画嵌入到Visual Basic应用程序中。
我正在尝试使用以下代码读取动画中名为'bob'的文本字段的内容;
TextBox1.Text = AxShockwaveFlash1.GetVariable("bob")
执行时,textbox1中的输出为“_level0.bob”???
这与动画中的实际文本有什么不同,以及我如何访问它?
尝试过bob.text等。
由于
菲尔
答案 0 :(得分:2)
右边找到了一个解决方案,与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);
Visual Basic
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 )
希望这对人们有用。
菲尔
答案 1 :(得分:1)
我认为你遇到的问题是双重的。首先,你需要能够以某种方式知道swf准备好了。我试图让它在VBA应用程序中运行一次(Access),我永远无法可靠地使其工作。
你需要意识到的第二件事是TextField是TextField类型,而不是String。