Skip to main content

Posts

Showing posts from November, 2009

[AS3] Data Binding in AS3 project

使用 Flex 開發過一陣子後,對於 [Bindable] 這個懶人 tag 有說不出的喜愛,然而在 Flash 中利用 Proxy 其實也可以達到相同的功用...但是 Flex SDK 免費擺在那邊不好好使用太對不起自己了... 在參考了 Ticore's Flex 2 Bindable Metadata Tag 背後實際作用 ( Ticore 萬歲!!),其實只需要將 Flex SDK frameworks/libs/framework.swc 包加到 Flash library 下,就可以使用 Flex 的 Binding 機制來達到綁定。前提是提供綁定的 host 屬性需要有 [Bindable] 才有作用,所以下面範例無法直接將 txt.text 與 txt1.text 綁定,需要透過 [Bindable] string:String 來做中介。 以下使用 FlashDevelop or Flex Builder 來編寫: package { import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; import mx.binding.utils.BindingUtils; [SWF(width='400', height='300', backgroundColor='#ffffff', frameRate='30')] public class TestBindable extends Sprite { public var input:TextField; [Bindable] public var string:String = ""; public function TestBindable() { if( stage ){ init(); }else { addEventListener( Event.ADDED_TO_STAGE , init ); } } private function init(event:Event = null):void{

[Flex] 3.4 SDK HttpService responder bug

Reference: http://twitter.com/sectore/status/3605078853 本篇用來筆記用, 在使用 Flex 3.4 SDK 的時候如果你有使用到 HttpService 利用 Responder 置入 result and fault function 時,你應該會發現 result 會被 call 兩次。 參考 Jens Krause「推」上的解法: public function callService():void { // call the service service=new HTTPService(); service.url=yourUrl; var token:AsyncToken=service.send(); token.addResponder(new Responder( result, fault)); //重點是這句 service.addEventListener( ResultEvent.RESULT , emptyResult ); } public function emptyResult(e:Event):void{} 這樣就可以解掉囉~~