flex php単純通信例
5001 ワード
Flexは強力ですが、Flexにデータベースを操作するには他のスクリプト言語、PHPやaspが必要です.net.FlexとPHPで通信を試み、テストに成功しました.最初はネットで他の人の経験を探していましたが、自分のところに置くとなかなかデバッグできず、いろいろな、わけのわからない間違いが発生しました.次に、Flexの公式ドキュメントとインスタンスを参照します.Flexのマニュアルで「HTTPService」を検索すると、MXMLファイルでタブを使用してHTTPServiceオブジェクトを表すという記述があります.HTTPServiceオブジェクトのsend()メソッドを呼び出すと、指定したURLに対するHTTP要求が発行され、HTTP応答が返されます.指定したURLにパラメータを渡すことを選択できます.サーバベースのプロキシサービスが使用されていない場合は、HTTP GETまたはPOSTメソッドのみが使用できます.useProxyプロパティをtrueに設定し、サーバベースのプロキシサービスを使用する場合は、HTTP HEAD、OPTIONS、TRACE、DELETEメソッドも使用できます.
マニュアルのHTTPServiceの属性と方法を見て、公式のインスタンスソースコードを読んで、FlexとPHP通信の例を書きました.プログラムはFlexからPHPに1つの数字を提出し、PHPはまず数字かどうかを判断し、もしそうなら、この数字に10を乗じて返す.そうでない場合は、中国語のプロンプトメッセージ「数値ではありません」を返します.
デモクリック:FlexとPHP通信
ソースコードは次のとおりです.
Demo.mxmlのソースコード:
PHPのソースコード(Demo.php)は以下の通り.
入力文字が数字ではないがFlexに「数字ではない」と表示されずに文字化けして表示する場合はDemo.phpファイルをUTF-8として保存すると、正しい中国語が表示されます.HTTPServiceでは、methodのプロパティを追加することもできます.値はPOSTまたはGETに設定でき、デフォルトはGETです.この属性を追加すると、PHPの$REQUEST["Data 1"]は$_と書くことができますGET["Data 1"]または$POST["Data1"]
マニュアルのHTTPServiceの属性と方法を見て、公式のインスタンスソースコードを読んで、FlexとPHP通信の例を書きました.プログラムはFlexからPHPに1つの数字を提出し、PHPはまず数字かどうかを判断し、もしそうなら、この数字に10を乗じて返す.そうでない場合は、中国語のプロンプトメッセージ「数値ではありません」を返します.
デモクリック:FlexとPHP通信
ソースコードは次のとおりです.
Demo.mxmlのソースコード:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
public function handleXml(event:ResultEvent):void
{
TextArea1.text = event.result.toString();
TextInput2.text = event.result.option.ReturnData;
}
public function handleFault(event:FaultEvent):void
{
Alert.show(event.fault.faultString, "Error");
}
]]>
</mx:Script>
<mx:HTTPService id="xmlRpc"
url="http://wangkangle.com/apps/flex_test.php"
result="handleXml(event)"
fault="handleFault(event)"
resultFormat="e4x">
<mx:request>
<Data1>{TextInput1.text}</Data1>
</mx:request>
</mx:HTTPService>
<mx:TextInput x="10" y="10" id="TextInput1" />
<mx:Button x="178" y="10" label="Button" id="Button1" click="xmlRpc.send()"/>
<mx:TextInput x="10" y="40" id="TextInput2"/>
<mx:TextArea x="10" y="70" height="216" width="233" id="TextArea1"/>
</mx:Application>
PHPのソースコード(Demo.php)は以下の通り.
<?php
if (is_numeric($_REQUEST["Data1"]))
{
$ReturnData = $_REQUEST["Data1"]*10;
}
else
{
$ReturnData = " ";
}
$results[] = "<options>";
$results[] = "<option><ReturnData>".$ReturnData."</ReturnData></option>";
$results[] = "</options>";
print implode("
", $results);
exit;
?>
入力文字が数字ではないがFlexに「数字ではない」と表示されずに文字化けして表示する場合はDemo.phpファイルをUTF-8として保存すると、正しい中国語が表示されます.HTTPServiceでは、methodのプロパティを追加することもできます.値はPOSTまたはGETに設定でき、デフォルトはGETです.この属性を追加すると、PHPの$REQUEST["Data 1"]は$_と書くことができますGET["Data 1"]または$POST["Data1"]