2013-04-08 71 views
1

我們必須嵌入到Visual Basic應用程序的.swf文件的flash動畫。訪問SWF文本字段通過Visual Basic

我想讀的叫做「鮑勃」使用下面的代碼動畫的文本字段的內容;

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

執行時,textbox1中的輸出是「_level0.bob」???

這是動畫中的實際文本,並知道如何才能訪問它有什麼不同?

試過bob.text等

感謝

菲爾

回答

1

我覺得你的問題是雙重的。首先,你需要能夠知道瑞士法郎是否準備好。我試圖讓它在一次VBA應用程序中工作(Access),並且我永遠無法可靠地使它工作。

你需要認識到的第二件事是,文本字段的類型文本字段,而不是字符串。

+0

下面是動作腳本變量; – Phil 2013-04-09 07:53:21

+0

謝謝艾米,這就是爲什麼我無法訪問文本的自我。以下是動作腳本變量; public var bob:TextField; public var count:Number; public var myTimer:Timer;我已經能夠獲得和設置文本字段的屬性,例如它的x,y位置(但不是它的文本),但是根本不能訪問變量計數,沒有例外。 – Phil 2013-04-09 07:59:07

+0

好吧,看起來像as3,你不能通過VB flash播放器訪問變量,可能是一個安全相關的變化。 – Phil 2013-04-09 09:35:36

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) 

希望這是使用的人的。

菲爾