用PHP和mxml 實現FLASH 曲線圖

來源:互聯網
上載者:User


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> ";
}
$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裡面的資料的標籤
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.