通过visual basic访问swf文本字段

时间:2013-04-08 16:26:25

标签: vb.net actionscript-3 flash

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

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

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

执行时,textbox1中的输出为“_level0.bob”???

这与动画中的实际文本有什么不同,以及我如何访问它?

尝试过bob.text等。

由于

菲尔

2 个答案:

答案 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。