顯示具有 ActionScript3 標籤的文章。 顯示所有文章
顯示具有 ActionScript3 標籤的文章。 顯示所有文章

2011年3月31日 星期四

Flash 儲存資料

Flash 不能和資料庫直接連結,不過要儲存資料的話有以下兩種方法

1. 儲存 在 本機的 cookie

2. 透過 HTTP GET 或 POST 的方式 向中介網站(PHP,ASP,JSP,...)等 再向資料庫溝通

2011年3月30日 星期三

轉貼 AC3 讀取傳送JSON

假設有一個JSON 紀錄學生 id 和 name

[
{"id":"001","name":"Andy"},
{"id":"002","name":"Ben"},
{"id":"003","name":"Chris"},
{"id":"004","name":"Dora"}
]


資料放在Localhost 的本端資料庫上



以下是AC3 的語法





import com.adobe.serialization.json.JSON;


/// Set db path
var url:String = "http://localhost:8888/getStudentJSON"; /// 註1
var urlRequest:URLRequest = new URLRequest(url);

//宣告變數
var LODAR:URLLoader = new URLLoader();

//讀取
LODAR.load(urlRequest);

//監聽事件,當傳輸結束呼叫 decodeJSON function
LDR.addEventListener(Event.COMPLETE,decodeJSON );


function decodeJSON(evt:Event):void
{
/// 宣告 student 陣列
var student:Array = JSON.decode(URLLoader(evt.target).data);

/// 取得每個學生的姓名
for (var i=0; i<student.length; i++) {
trace( student[i].name );
}
}



註1
遠端的位置

參考:

[1] as3corelib

[2] as3 讀取和發送JSON

Flash CS5 引用外部 library 以 com.adobe.serialization.json.JSON 為例







要引用外部的函式庫的話,在CS5 的環境下,流程是這樣


1. 先下載函式 這裡我以 JSON 的函式為例

到這裡下載 https://github.com/mikechambers/as3corelib/blob/master/src/com/adobe/serialization/json/JSON.as

2. 解壓縮

3. 打開CS5

4. 在CS5 選擇 編輯->偏好設定


5. 類別中選擇 ActionScript, 之後在語言 地方 點 ActionScript3.0設定



6. 在 來源路徑中選擇 剛剛解壓縮的資料夾下面的 SRC 資料夾位置


7. 點下 確定 完成設定




之後就可以順利在 ActionScript 中 import 函式庫了

import com.adobe.serialization.json.JSON;

轉貼 Flash AC3 讀取外部資料

AC3 不同於 AC2 在讀取外部資料(或資料庫)的方式,採用不同語法 ,是用 urlRequest 和 URLLoader 的方式來接資料, 而 AC2 是用 Loadvars 的方式, 所以想使用AC3 開發的話,看到 Loadvars 就可以略過了。


以下是簡單的code:




/// Set path
var url:String = "http://localhost:8888/hello"; /// 註1
var urlRequest:URLRequest = new URLRequest(url);

var LDR:URLLoader = new URLLoader();

LDR.load(urlRequest);

//LDR.dataFormat = URLLoaderDataFormat.; /// 註2

LDR.addEventListener(Event.COMPLETE,Loadcomp);

function Loadcomp(event:Event){
trace(LDR.data);
}




註1
所請求的網址,可以是PHP,JSP,Servlet,XML or txt 檔

註2( [2])
接收資料類型
a. BINARY : String = "binary"
[靜態] 會指定以原始二進位資料的形式接收下載的資料。
b. URLLoaderDataFormat TEXT : String = "text"
[靜態] 會指定以文字的形式接收下載的資料。
c. URLLoaderDataFormat VARIABLES : String = "variables"
[靜態] 會指定以 URL 編碼的變數形式接收下載的資料。


參考:

[1] ActionScript3 (AS3) URLLoader 讀取外部變數

[2] ActionScript 3.0 語言和組件參考