flash後台資料連線(PHP篇) 之 php&flash收藏夾

來源:互聯網
上載者:User
後台|資料 距上次在flash8寫文章(為Alert組件加上響應功能!~http://space.flash8.net/bbs/thread-319211-1-1.html)之後已經有好久沒有動筆墨了,不知有沒有生繡。這次要寫的是PHP和flash,這裡做一個簡章的例子 --  php&flash 收藏夾,當然這隻是說明如何?傳遞變數及php寫檔案。

我的設想(流程):寫入操作:填好資料到表單中,點按鈕儲存 -> 透過php寫入檔案favorite.dat中(你也可以改成MySql,應該不是很難) 。讀資料: 點重新整理按鈕 -> 通過php讀取全部的資料 -> 返回到flash TextArea中,(因為TextArea支援簡單的HTML,當然也包括<a href..>)。刪除:留給你的作業!

說明:因為只通過一個php檔案,所以我在flash設定了一個變裡 $_POST[a] 用於分別出是儲存還是重新整理,如不考慮刪除,也可以直接改成,在php端判斷。如果是$_POST則,為寫資料,相應的$_GET就為讀資料(這裡的重新整理)。好了,開始:
一: 開啟你的flash 8 建立一個影片,這裡我們需要幾個組件
1. 一個TextArea -> 我命名為: url_textarea 。這裡的屬性我設定成了支援HTML,以便我的那些網址可以點擊,有人問:為什麼不用DataGrid啊,因為我還沒有學會用。
2. 二個TextInput -> 命名為 : webname_txt 和 url_txt。
3. 三個Button -> 命名為: save_btn 和 refresh_btn。
4. 以及幾個用作說明的label。
二: 開啟代碼寫上:
import mx.controls.Alert; //加入Alert,以便彈出一個提示資訊
var send_lv = new LoadVars (); //發送到伺服器的變數
var save_lv = new LoadVars ();  //儲存存時從伺服器返回的資訊
var refresh_lv = new LoadVars (); // 重新整理時從伺服器返回的資訊
/**
* 設定添加按鈕的動作
*/
append_btn.onRelease = function(){
        send_lv.a = "save"; //使用儲存方法
        send_lv.name = webname_txt.text; //網站名稱
        send_lv.url = url_txt.text; //網址
        send_lv.sendAndLoad ("favorite.php", save_lv, "POST");  //發送資料到php
        webname_txt.text = url_txt.text = ""; //清空文字框
}
/**
* 設定重新整理按鈕
*/
refresh_btn.onRelease = function() {
                send_lv.a = "refresh"; //重新整理方法
                send_lv.sendAndLoad ("favorite.php", refresh_lv, "POST"); //返回資料
}
//儲存效應
save_lv.onLoad = function (success : Boolean)
{
                if (success){
                        // save_lv.msg是從php處返回的提示資訊
                        mx.controls.Alert.show (save_lv.msg, "Debug Message", Alert.YES, _root, false, "prueba", Alert.OK);
                }
                else {
                        mx.controls.Alert.show ("錯誤,未能載入", "Debug Message", Alert.YES, _root, false, "prueba", Alert.OK);
                }
}
//重新整理響應
refresh_lv.onLoad = function (success : Boolean)
{
                if (success){
                        mx.controls.Alert.show (refresh_lv.msg, "Debug Message", Alert.YES, _root, false, "prueba", Alert.OK); //彈出資訊
                        //顯示到TextArea中
                        url_textarea.text = refresh_lv.data; 
                }
                else {
                        mx.controls.Alert.show ("錯誤,未能載入", "Debug Message", Alert.YES, _root, false, "prueba", Alert.OK);
                        
                }
}
stop(); 三:寫那個favorite.php
我喜歡用的編輯器: editplus 介紹給大家使用,寫入代碼:
<?php
/***
* php & flash 收藏夾
*
* 這裡要實現的功能是,用flash來展示和通過php來讀寫文本來
* 實現一個收藏夾的功能
*
* 資料的儲存結構
* $name|$url|$date|&|$name|$url|$date....
*/


/**
* 實現添加的功能
* @ $name : 收藏的網站名
* @ $url : 網址
*/
function append($name,$url){
        $fp = fopen("favorite.dat","a+"); //添加模式
        $flag = fwrite($fp,"$name|$url|".time()."|&|"); //添加是否成功?
        fclose($fp);
        return $flag;
}

/***
* 實現讀取功能
* 返回:數組
*/
function get_data(){
        $f = "favorite.dat"; //要讀取的檔案
        $fp = fopen($f,’r’);
        $tmpdata = fread($fp,filesize($f)); //全部讀取
        fclose($fp);

        $detail= explode(’|&|’,$tmpdata); //分解資料

        for($i=0; $i<sizeof($detail)-1; $i++) {
                $out = explode(’|’,$detail[$i]); //再分一次就可以輸出了
                $date=date("Y/m/D",$out[2]); //格式化日期

                $ret_data .= "<a href=’$out[1]’>$out[0]</a> - [$date]<br>"; //格式化資料了
        }
        return "&data=$ret_data";
}




/***
* 確定是何種方法,是儲存資料還是點重新整理按鈕!
*/

if ($_POST[a] == "save") {
        if(append($_POST[name],$_POST[url])) {
                echo "msg=是的,已經儲存好了";
        }
        else{
                echo "msg=不好意思,技術原因,沒能儲存 :-(";
        }
}
elseif ($_POST[a] == "refresh") {
                echo "msg=資料來了,接收中...".get_data();
}
?>這裡有一點:一定要記得建立一個favorite.dat,因為fopen(fp,'a+') ,這裡的a+模式不能建立檔案,所以你要建好!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.