dポイントプレゼントキャンペーン実施中!

AS3にてPHPに値を渡して、処理した結果をFLASH側に戻す処理をしています。

今回はテスト用に、値は送らずに単純に結果を返すだけのPHPを作ったのですが、1番目の値がundefinedになってしまいます。

for inで取得すると正常にすべての値が取得できるのですが、直接参照するとダメです。2番目以降の値は取得できます。
このような現象について、お心当たりございましたら、是非お願い致します。


●flash側
import ConnectPHP; //PHPとの受け渡しを行う外部AS

var connectPHP = new ConnectPHP();
connectPHP.addEventListener(ConnectPHP.COMPLETE, completeHandler);
connectPHP.sendAndLoad("check.php");
function completeHandler(e:Event):void
{
var obj:Object = connectPHP.result;
for (var i in obj) {
trace(i, '=>', obj[i]);
}
trace(obj.a);
trace(obj.b);
}

●PHP側
<?php
echo "a=1&b=2";
?>

●結果


a => 1
b => 2
undefined
2

※for のtrace結果の時に、空の2行が書き出されます。

A 回答 (1件)

FlashDevelop 4.0.1 / FlexSDK 4.6を使用して検証してみました。



var urlVariables:URLVariables = new URLVariables("a=1&b=2");
var obj:Object = new Object();
for (var k:String in urlVariables)
{
 obj[k] = urlVariables[k];
}
for (k in obj)
{
 trace(k, '=>', obj[k]);
}

trace(obj.a);
trace(obj.b);

と言うコードを組んだ結果、

b => 2
a => 1
1
2

となりました。

ConnectPHPと言うものが何者だか解らないのですが、
生の戻り値データを取得することはできないのですか?
つまり、Flash側で"a=1&b=2"という文字列は取れないのですか?

この回答への補足

ご回答ありがとうざいます。

ConnectPHPはこちらのサイトのクラスを使わせてもらいました。
http://feb19.jp/blog/archives/000162.php

今思いついたのですが
for inで取得すると空値が出てくるので
先頭の名前に、改行コードのような不要な情報が含まれてしまっているのかも知れません。

補足日時:2012/03/12 02:23
    • good
    • 0
この回答へのお礼

自己解決しました。
PHP側で、<?phpより前に空行が2行含まれていたのが原因でした。

ケアレスミスでお手数をおかけいたしました。

お礼日時:2012/03/13 19:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!