2012-09-05 49 views
1

我目前正在用ActionScript 3試驗AMFPHP,並且一切都很好,但是當我將數據插入到數據庫時出現以下錯誤,但是數據將插入到我的數據庫。as3錯誤屬性serverInfo找不到字符串,並且沒有默認值

下面的PHP代碼第一:

<?php 
public function setColor($kleur){ 
    mysql_query("INSERT INTO kleuren (kleuren) VALUES ("'.$kleuren."')"); 
    return $kleur; 
?> 

忽略安全問題,現在我是最新的SQL注入,但是這並不重要,現在。

我的AS3代碼如下所示:

import fl.controls.Button; 
import fl.events.ComponentEvent; 
import flash.display.Stage; 
import flash.display.Sprite; 
import flash.events.MouseEvent; 
import flash.net.NetConnection; 
import flash.net.Responder; 
import flash.text.TextField; 
import flash.text.TextFormat; 
import flash.text.TextFieldAutoSize; 

/** 

MidasSerialComm 2.6.1 

Attributes 
    input 
     a value which receives from serial port. 

Methods 
    serIn() 
     Returns a String value read from serial port. 
    serOut(String arg) 
     Send "arg" to serial port. 
     No return value. 

*/ 

// The belows are parameters for configuration of module 
midas.commport="COM4"; // necessary field 
//midas.baudrate="9600";; 
//midas.parity="n"; 
//midas.databit="8"; 
//midas.stopbit="1"; 
//midas.eof="ascii 13"; 
//midas.stx="null"; 
//midas.etx="null"; 
//midas.debug=false; 
midas.serverip="localhost"; // necessary field 
midas.serverport="8864"; // necessary field 

midas.visible = false; 

//knoppen rood , groen en blauw opzetten 

var roodLampje:Sprite = new Sprite(); 
roodLampje.graphics.beginFill(0xFF0000); 
roodLampje.graphics.drawRect(stage.stageWidth/2 + -150, stage.stageHeight/2, 60, 40); 
roodLampje.buttonMode = true; 
addChild(roodLampje); 

var groenLampje:Sprite = new Sprite(); 
groenLampje.graphics.beginFill(0x00FF00); 
groenLampje.graphics.drawRect(stage.stageWidth/2 + -80, stage.stageHeight/2, 60, 40); 
groenLampje.buttonMode = true; 
addChild(groenLampje); 

var blauwLampje:Sprite = new Sprite(); 
blauwLampje.graphics.beginFill(0x0000FF); 
blauwLampje.graphics.drawRect(stage.stageWidth/2 + -10, stage.stageHeight/2, 60, 40); 
blauwLampje.buttonMode = true; 
addChild(blauwLampje); 


var zetLampjeUit:Sprite = new Sprite(); 
zetLampjeUit.graphics.beginFill(0x000000); 
zetLampjeUit.graphics.drawRect(stage.stageWidth/2 + 60, stage.stageHeight/2, 60, 40); 
zetLampjeUit.buttonMode = true; 
addChild(zetLampjeUit); 

//kleuren 

var rood:String = "Rood"; 
var groen:String = "Groen"; 
var blauw:String = "Blauw"; 

var huidigKleur:String; 
var netConnection:NetConnection; 
var responder:Responder; 

//click events toevoegen aan buttons 
roodLampje.addEventListener(MouseEvent.CLICK, onRoodClick); 
groenLampje.addEventListener(MouseEvent.CLICK, onGroenClick); 
blauwLampje.addEventListener(MouseEvent.CLICK, onBlauwClick); 
zetLampjeUit.addEventListener(MouseEvent.CLICK, onUitClick); 

//connectie met service 
netConnection = new NetConnection(); 
netConnection.connect("http://navidmirzaie.com/amfphp/gateway.php"); 
responder = new Responder(onResult, onFault); 


var t:TextField; 
var textFormat:TextFormat = new TextFormat("Verdana",14,0x000000); 


midas.ondata = function(msg){ 


    switch(msg){ 
     case "49": 
      huidigKleur = rood; 
      netConnection.call("ArduinoTest.setColor",responder,huidigKleur); 
      //trace(huidigKleur); 
     break; 

     case "50": 
      huidigKleur = groen; 
      netConnection.call("ArduinoTest.setColor",responder,huidigKleur); 
      //trace(huidigKleur); 
     break; 

     case "51": 
      huidigKleur = blauw; 
      netConnection.call("ArduinoTest.setColor",responder,huidigKleur); 
      //trace(huidigKleur); 
     break; 

     case "48": 

     break; 

    } 


} 


//click handlers, reageer op de gedrukte knop 
function onRoodClick(eventObj:MouseEvent):void { 
    midas.output("1"); 
    //trace("er is op rood geklik"); 
} 

function onGroenClick(eventObj:MouseEvent):void { 
    midas.output("2"); 
    //trace("er is op groen geklik"); 
} 

function onBlauwClick(eventObj:MouseEvent):void { 
    midas.output("3"); 
    //trace("er is op blauw geklik"); 
} 

function onUitClick(eventObj:MouseEvent):void { 
    midas.output("0"); 
    //trace("er is op blauw geklik"); 
} 

//data afhandeling post 
function onResult(responds:Object){ 

    var t:Array = new Array(); 
    t = responds.serverInfo.initialData; 
    //var t:Array = responds.serverInfo.initialData; 
    trace(t.length); 

    /* 
    for(var i:uint = 0; i < t.length; i++){ 
     trace("Aantal "+t[i][0]+" "+t[i][1]); 
    } 
    */ 
} 

function onFault(responds:Object){ 
    for(var i in responds){ 
     trace(responds[i]); 
    } 
} 


netConnection.call("ArduinoTest.getCountofTotallColors",responder); 
//data ophalen van arduino 

我得到這個錯誤:

ReferenceError: Error #1069: Property serverInfo not found on String and there is no default value. at test2_fla::MainTimeline/onResult()

我沒有得到錯誤的點,這是我不能調試的原因,我的碼。

回答

0

很明顯,您會在回覆中收到未分類的字符串。在你的onResult()函數中通過什麼類型的對象進行調試,如下所示:

function onResult(responds:Object):void 
{ 
    if (responds is Array) { 
     trace('Array has been received:',responds); 
     // do something with that array 
    } else if (responds is String) { 
     trace('String has been received:',responds); 
     // do something with that string 
    } else { 
     trace('An object of unknown type has been received:',responds); 
     for (var i:String in responds) trace('['+i+']',responds[i]); 
    } 
} 
+0

thx我會試試看。 – Navid

+0

我在我的輸出窗口中獲得以下內容。 已收到未知類型的對象:[對象對象] [serverInfo] [對象對象] – Navid

+0

我只是沒有得到的問題,萬物工作正常..我可以得到每種顏色的數量和價值的顏色在我的數據庫中插入成功,我不明白錯誤來自哪裏。 – Navid

相關問題