MXML是一個可以讓你在Adobe Flex中布局用戶界面組件的一種XML語言,你也可以使用MXML聲明來定義程序中的非可視化組件,安裝好FLEX Development 后,你就可以輕松的結合PHP完成一個FLASH曲線圖.
先從PHP入手:
FLEX 和PHP的交互最常用的就是和XML的交互,就是用PHP生成XML,然后用FLEX去讀取并且顯示,我們以XML的形式先寫一個帳目詳單的數據,代碼如下:
- header("Content-Type: text/xml");
- $arr = array(
- array('day'=>'01','sum'=>'153.1'),
- array('day'=>'02','sum'=>'882.86'),
- array('day'=>'03','sum'=>'456.9'),
- array('day'=>'04','sum'=>'717.7'),
- array('day'=>'05','sum'=>'255.1'),
- array('day'=>'06','sum'=>'533.1')
- );
- $xml_return .= "<bills>";
- foreach ( $arr as $use){
- $xml_return .="<bill><sum>{$use['sum']}</sum><name>{$use['day']}</name></bill> ";
- }//開源代碼Vevb.com
- $xml_return.= "</bills>";
- echo $xml_return;
顯示6個月的消費記錄,$arr也可以是從數據庫讀出來的數據,這里只是作為一個例子,所以直接給一個數組賦值.
- - <bills>
- - <bill>
- <sum>153.1</sum>
- <name>01</name>
- </bill>
- - <bill>
- <sum>882.86</sum>
- <name>02</name>
- </bill>
- - <bill>
- <sum>456.9</sum>
- <name>03</name>
- </bill>
- - <bill>
- <sum>717.7</sum>
- <name>04</name>
- </bill>
- - <bill>
- <sum>255.1</sum>
- <name>05</name>
- </bill>
- - <bill>
- <sum>533.1</sum>
- <name>06</name>
- </bill>
- </bills>
Php部分就完成了,接下來是寫MXML,實例代碼如下:
- <?xml version="1.0" encoding="utf-8"?>
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="getaccount()">
- <mx:HTTPService id="listRequest" url="" useProxy="false" method="POST">
- <mx:request xmlns=""> </mx:request>
- </mx:HTTPService>
- <mx:Script><![CDATA[
- import mx.rpc.events.ResultEvent;//引用ResultEvent類
- public function getaccount():void{
- listRequest.url='http://localhost/arr.php';
- listRequest.send();
- }
- ]]></mx:Script>
- <mx:LineChart showDataTips="true" clipContent="false" x="126" y="10" id="tongjitu" dataProvider="{listRequest.lastResult.bills.bill}" width="678">
- <mx:horizontalAxis>
- <mx:CategoryAxis dataProvider="{listRequest.lastResult.bills.bill}" categoryField="name" title="(日)" />
- </mx:horizontalAxis>
- <mx:series>
- <mx:LineSeries displayName="每日消費" yField="sum" xField="name"/>
- </mx:series>
- </mx:LineChart>
- </mx:Application>
逐一解釋一下:
- Application //MXML應用程序開頭
- creationComplete="getaccount()" //代表頁面加載完成后 執行 getaccount函數
- 〈mx:HTTPService id="listRequest" url="" useProxy="false" method="POST"〉
- 〈mx:request xmlns=""〉 〈/mx:request〉
- 〈/mx:HTTPService〉
- //則是一個HTTP的請求,發送POST到一個PHP文件 去獲取數據
- mx:Script //MXML里面的腳本 都用 <mx:Script>包含進去
下面分析下getaccount函數:
- public function getaccount():void{
- listRequest.url='http://localhost/arr.php';
- listRequest.send();
- }
- //列出了 HTTPService 請求地址是 http://localhost/arr.php
- //你同樣也可以寫成相對路徑 比如 listRequest.url='./arr.php';
- mx:LineChart //是一個 曲線 組件,我們可以直接拿來使用
- dataProvider :數據源:listRequest.lastResult.bills.bill
- bills.bill 是XML里面的標簽
- mx:LineSeries displayName="每日消費" yField="sum" xField="name"
- //則定義了 橫縱坐標的值。
- //Sum name 就是XML里面的數據的標簽
新聞熱點
疑難解答