1

我们将 .swf Flash 动画嵌入到 Visual Basic 应用程序中。

我正在尝试使用以下代码读取动画中名为“bob”的文本字段的内容;

TextBox1.Text = AxShockwaveFlash1.GetVariable("bob")

执行时 textbox1 中的输出为 "_level0.bob" ???

这与动画中的实际文本不同,并且知道如何访问它?

尝试过 bob.text 等。

谢谢

菲尔

4

2 回答 2

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);

视觉基础

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 )

希望这对人们有用。

菲尔

于 2013-04-09T14:00:06.087 回答
1

我认为你遇到的问题是双重的。首先,您需要能够以某种方式知道 swf 已准备好。我试图让它在 VBA 应用程序中工作一次(访问),但我永远无法可靠地让它工作。

您需要意识到的第二件事是 TextField 是 TextField 类型,而不是 String。

于 2013-04-08T16:50:12.580 回答