2014-12-05 65 views
0

我有一個連接了三個傳感器的Arduino。每100ms Arduino的打印串口新線由#隔開三個更新的值:與Arduino和serproxy進行串行通訊以進行閃存。僅在測試模式下的預期結果

例:

23#11#50_18_1_14_48_0_226_0_16_33_64_2_1_97_36_128_24_170 26#12#50_18_1_14_48_0_226_0_16_33_64_2_1_97_36_128_24_170 33#11#50_18_1_14_48_0_226_0_16_33_64_2_1_97_36_128_24_170 48#10#50_18_1_14_48_0_226_0_16_33_64_2_1_97_36_128_24_170

使用serproxy通過這個值,以Flash和AS3的socket函數我可以跟蹤在測試模式下的串行輸出(CTRL + ENTER)。在這一點上,所有的工作如預期。

當我發佈並運行swf文件時,我可以接收到串行數據,但並不像預期的那樣每隔100ms我只接收一部分輸出。我在測試模式下收到的並不總是相同的部分,並不總是完整的預期輸出。

它可能是與安全有關的東西?

這裏是我的閃存代碼接收數據:

var dataSocket:Socket = new Socket("localhost",5333); 
dataSocket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); 

function socketDataHandler(event:ProgressEvent):void { 

     var sensValue:String; 
     sensValue = dataSocket.readUTFBytes(dataSocket.bytesAvailable); 
     trace(sensValue); 

     var sensData:Array = sensValue.split("#"); 
     sensor1 = sensData[0].toString(); 
     sensor2 = sensData[1].toString(); 
     sensor3 = sensData[2].toString();  
} 

任何想法?謝謝

回答

1

您正在運行到您重新使用調試模式時被繞過的Socket安全錯誤。 取決於你需要做什麼: (1)如果你想在瀏覽器中閃光,你將需要看安全http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7c60.html (2)或者如果你可以使用空氣來代替,你將不必處理任何這個。

+0

你好米卡,謝謝你的幫助。我用Flash開發(AS3不是OOP)。我需要在桌面上運行它,而不是在瀏覽器中運行。我是否可以使用Adobe Flash Professional使用我的fla項目導出Air應用程序?開發Air應用程序我需要Flash Builder嗎? – 2014-12-10 12:35:46

+0

關於AS3 Security.APPLICATION? – 2014-12-10 13:01:59

+0

您可以直接從Flash Pro創建Air項目 - 請參閱:http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b21ec24feb12478b70aff-8000.html – mika 2014-12-10 18:10:44