2013-06-24 50 views
0

我發現Firebase,它看起來非常適合JavaScript/HTML5的使用。 但我想知道是否也有一個ActionScript腳本?尋找使用Firebase的ActionScript 3 /空

var myRootRef = new Firebase('https://myprojectname.firebaseIO-demo.com/'); 
myRootRef.set('Hello World!'); 
var dataRef = new Firebase('https://SampleChat.firebaseIO-demo.com/users/fred/name/first'); 
dataRef.on('value', function(snapshot) { 
    alert('fred’s first name is ' + snapshot.val()); 
}); 

所以設定數據來對更新後的數據等

感謝所有幫助 馬特

+0

我們沒有特定的actionscript API,但您可以調用JavaScript來執行您需要的操作。 –

+0

感謝Andrew,儘管我最終可能會在瀏覽器中使用AIR而不是Flash。所以它不能用於這種情況? – atomicDroid

回答

0

看起來不像有可用的AS3 API,但聽衆好消息是他們有一個休息API,它是跨平臺的,你可以編寫一個AS3包裝器。 (https://www.firebase.com/docs/rest-api.html)這就是我打算做的。我想用GameBuilder Studio來使用它。

+0

聽起來很有趣Ldubb。 您如何計劃實現新數據的「監聽者」功能等? – atomicDroid

0

如果您打算將應用程序嵌入到您創建的網頁中,則可以使用外部JavaScript接口並通過該接口與Firebase進行通信。

我打算自己做這件事,看看它是如何變成現實的。

0

使用ActionScript 3連接到Firebase只需要使用URLRequest和URLLoader。以下示例涵蓋了4個基本操作(CRUD)。

要從火力地堡數據庫中讀取來自特定節點的數據:

private function loadNews():void 
{ 
    var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/<Node_to_read>.json"); 

    var loader:URLLoader = new URLLoader(); 
    loader.addEventListener(flash.events.Event.COMPLETE, newsLoaded); 
    loader.load(request); 
} 

private function newsLoaded(event:flash.events.Event):void 
{ 
    trace(event.currentTarget.data); 
    var rawData:Object = JSON.parse(event.currentTarget.data);        
} 

將數據插入到特定的節點:

private function saveEntry(title:String, description:String):void 
{ 
    var myObject:Object = new Object(); 
    myObject.title = title; 
    myObject.description = description; 
    myObject.timestamp = new Date().getTime(); 

    var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/<Node_to_insert>.json"); 
    request.data = JSON.stringify(myObject); 
    request.method = URLRequestMethod.POST; 

    var loader:URLLoader = new URLLoader(); 
    loader.addEventListener(flash.events.Event.COMPLETE, entrySent); 
    loader.load(request);  
} 

private function entrySent(event:flash.events.Event):void 
{ 
    trace(event.currentTarget.data); 
} 

要刪除特定節點:

private function deleteEntry():void 
{ 
    var header:URLRequestHeader = new URLRequestHeader("X-HTTP-Method-Override", "DELETE");   

    var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/<Node_to_delete>.json"); 
    request.method = URLRequestMethod.POST; 
    request.requestHeaders.push(header); 

    var loader:URLLoader = new URLLoader(); 
    loader.addEventListener(flash.events.Event.COMPLETE, entryDeleted); 
    loader.load(request);   
} 

private function entryDeleted(event:flash.events.Event):void 
{ 
    trace(event.currentTarget.data); 
} 

要更新/修改數據到特定節點:

private function updateEntry(title:String, description:String):void 
{ 
    var header:URLRequestHeader = new URLRequestHeader("X-HTTP-Method-Override", "PATCH");   

    var myObject:Object = new Object(); 
    myObject.title = title; 
    myObject.description = description; 

    var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/journal/<Node_to_modify>.json"); 
    request.data = JSON.stringify(myObject); 
    request.method = URLRequestMethod.POST; 
    request.requestHeaders.push(header); 

    var loader:URLLoader = new URLLoader(); 
    loader.addEventListener(flash.events.Event.COMPLETE, entryUpdated); 
    loader.load(request);   
} 

private function entryUpdated(event:flash.events.Event):void 
{ 
    trace(event.currentTarget.data); 
} 

如果您需要更多信息,我已經撰寫了詳細的Firebase REST指南和關於如何使用ActionScript 3和Firebase的示例。