目前flash在各方個面的應用越來越廣,而flash也不單只是注重自身絢麗的效果,也需要和外界程式交換資料,以實現更強大的功能,隨著as3的到 來,flash和外部互動的方式也越來越簡便和合理化。今天就在這裡談談as3和後台資料的互動(這裡選擇as3+php
架構,其他配置同理)。
在as3裡,原來的loadvars方法已經被廢棄,而改用一系列的類來實現與後台資料的互動,這些類是:urlloader,urlloaderdataformat,urlstream,urlvariables。
urlloader 類和原來的loadvars類似,是載入文字,2進製資料,xml,url資料等資訊的有力工具。urlloader接受乙個urlrequest 作為構造的引數,使用load方法來載入資料。urlloder也可以進行監聽,這點也loadvars不同,乙個簡單的示例如下:
//actionscript code//
//宣告乙個urlloader
varloader
:urlloader
= new
urlloader();
//監聽數載載入完成事件
loader
.addeventlistener
(event
.complete
,loaded);
//事件相應函式
function
loaded(e
:event
)//載入test.php
loader
.load
(new
urlrequest("
test.php"))
; // test.php code/
//宣告乙個變數並賦給乙個字串
$data='
this data is form php!';
//輸出這個變數給flash
echo
$data;?&
gt;從上面的示例可以看出,as3和後台互動是多麼簡單,但這只是單項的互動,如果要flash向後台傳送資料並傳回資料該如何去做呢?這個時候你可能會把**該成這樣:
//actionscript code
varloader
:urlloader
= new
urlloader();
loader
.data=;
loader
.addeventlistener
(event
.complete
,loaded);
function
loaded(e
:event
)loader
.load
(new
urlrequest("
test.php"))
; code//
$flashdata
= $_post['
message']
;echo
"this is flash say:
$flashdata";
?>
那樣,乙個類通吃所有了,那麼這個urlvariables如何送要傳送的資料呢?
你可能找遍了urlloader的文件也沒有發現與它相關的東西,是的urlloader並不和urlvariables有關聯,而是 urlrequest在使用它,urlrequest包含整個http請求的所有資訊,所以我們要傳送的資料要放在這裡,urlrequest有乙個 data屬性他接受乙個object型別的引數,這就是我們要傳送的資料。同時你可能還注意到了,urlrequest也管理用什麼樣的方式來傳送 http請求,它的method屬性接受乙個字元引數,post或者是get。好了,現在我們來看看它們是怎麼工作的:
//actionscript code
varloader
:urlloader
= new
urlloader();
//宣告乙個urlrequest
varurl
:urlrequest
= new
urlrequest("
test.php")
;//設定傳輸方式為post
url.
method
= urlrequestmethod
.post
;//宣告乙個urlvariables
varvalues
:urlvariables
= new
urlvariables();
//設定要傳輸的資訊
values
.message="
hello im flash!";
url.
data
= values
;loader
.addeventlistener
(event
.complete
,loaded);
function
loaded(e
:event
)loader
.load
(url);
code//
$flashdata
= $_post['
message']
;echo
"this is flash say:
$flashdata";
?>
//actionscript code
varloader
:urlloader
= new
urlloader();
//宣告乙個urlrequest
varurl
:urlrequest
= new
urlrequest("
test.php")
;//設定傳輸方式為post
url.
method
= urlrequestmethod
.post
;//宣告乙個urlvariables
varvalues
:urlvariables
= new
urlvariables();
//設定要傳輸的資訊
values
.message="
hello im flash!";
url.
data
= values
;loader
.addeventlistener
(event
.complete
,loaded);
function
loaded(e
:event
)loader
.load
(url);
code//
$flashdata
= $_post['
message']
;$phpmessage= '
im php message!';
echo
"phpmessage=
$phpmessage
&flashmessage=
$flashdata";
?>
裡,他們是:binary-以2進製的 方式解析 text-以文字的方式解析 variables-以變數-值配對的方式解析。urlloader的dataformat屬性提供了對解析方式的選擇,好,我們再來修改下程式使它變的 更完美些:
//actionscript code
varloader
:urlloader
= new
urlloader();
//宣告乙個urlrequest
varurl
:urlrequest
= new
urlrequest("
test.php")
;//設定傳輸方式為post
url.
method
= urlrequestmethod
.post
;//宣告乙個urlvariables
varvalues
:urlvariables
= new
urlvariables();
//設定要傳輸的資訊
values
.message="
hello im flash!";
url.
data
= values
;//設定以變數-值配對的方式解析資料
loader
.dataformat
= urlloaderdataformat
.variables
;loader
.addeventlistener
(event
.complete
,loaded);
function
loaded(e
:event
)loader
.load
(url);
code//
$flashdata
= $_post['
message']
;$phpmessage= '
im php message!';
echo
"phpmessage=
$phpmessage
&flashmessage=
$flashdata";
?>
as3與php互動實現總結
目前flash在各方個面的應用越來越廣,而flash也不單只是注重自身絢麗的效果,也需要和外界程式交換資料,以實現更強大的功能,隨著as3的到 來,flash和外部互動的方式也越來越簡便和合理化。今天就在這裡談談as3和後台資料的互動 這裡選擇as3 php架構,其他配置同理 在as3裡,原來的lo...
Ionic前台與PHP後台間資料互動
ionic 目錄 我們在開發ionic程式中,必不可少的要與後台進行資料互動,有將資料提交伺服器和從伺服器獲取資料的操作。如果我們伺服器使用php語言進行開發,可能會遇到以下問題 1 無法訪問伺服器。2 伺服器端使用 post 命令無法獲取前台提交的資料。下面我們就一一說明這些問題如何解決。1 無法...
AS3教程 for each in解析效率
新的 for each in 除了遍歷xml,同樣可以用來遍歷陣列和物件。建立 百萬雄兵 var testarr array new array for var i number 0 i 1000000 i 以前的 for 和 for in 以及新的 for each in 迴圈 for 260毫秒...