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

2010年12月2日 星期四

使用swfobject

host on google ajax api
http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js

why using  swfobject
  1. make embedding SWFs as easy as possible.
  2. supports the use of alternative content to display content
  3. help search engines index content
  4. point visitors to the Flash Player download page
two distinct methods to embed SWF files
  1. Static publishing
    •  ie. registerObject
  2. Dynamic publishing
    • ie.  embedSWF
參考資料

    2010年8月27日 星期五

    Flex Tree control 點擊branch後展開

    Tree control default 是點擊最左邊的三角形才會展開branch

    若要在branch click後展開,參考code如下:

    在tree 的itemClick event property做一個handlder function

    protected function userTree_itemClickHandler(event:ListEvent):void
       {
        var item:Object = Tree(event.currentTarget).selectedItem;
                    if (userTree.dataDescriptor.isBranch(item)) {
         userTree.expandItem(item, !userTree.isItemOpen(item), true);
        }
       }
    
    

    2010年8月25日 星期三

    暫記 專案工作的bug

    Flex 4

    Panel control 的alpha attribute 會導致輸入框出現多餘的空白

    透明設定下,spark panel 無法四邊原角,mx panel 可以

    dropdownlist 會有在特定位置load不到xml的狀況...用mx combobox取代可以work!!

    (看來Spark component還不成熟?)

    2010年8月5日 星期四

    [Flex 4] tree control 動態載入外部xml

    測試過在flex 4 搭配 asp.net c-sharp 可以work
    
    
    
       [Bindable]
      private var userDataObject:Object; //data object provider for tree control
       [Bindable]
       private var xmlLoader:URLLoader; // used to load URLRequest (URLRequest is used to request XML)
       
       private function initializeHandler():void {
        
        xmlLoader = new URLLoader();
        xmlLoader.addEventListener(Event.COMPLETE, completeHandler);
        var uri:URLRequest = new URLRequest("../user_group.aspx");
        
        xmlLoader.load(uri);
       }
       private function completeHandler(event:Event):void { 
        trace( xmlLoader.data );
       }
    
       
       private function creationCompleteHandler(event:Event):void {
        
        userDataObject = xmlLoader.data;
        
       }
    
    
    
    
    
    

    2010年5月1日 星期六

    flex 4 App透明背景(transparent background)

    transparent background (透明背景) in flex SDK 4

    跟以前flex 3的做法不太一樣,原因在於Spark元件的設計架構與前一版Halo理念不大相同

    flex 4 的 s:Application 沒有backgroundAlpha這個屬性?!,昨晚測了很久才發現是烏龍一場
    主要作法如下:

    1. 建立一個自訂的skin MXML file,並在App中引入, ie. skinClass="transparentSkin"

    2. 找到flex SDK 4中的ApplicationSkin.mxml,將內容複製到自訂的Skin file,略做修正
    
     
      
     
    
    
    

    3. 在flash builder 4專案,設定html-template資料夾中的index.template.html加入這行:
    params.wmode = "transparent";
    


    參考資料:
    1. Flex Spark application background alpha
    2. How to create transparent application background – Spark SDK
    3. Transparency for Flex 4/Spark Applications

    2010年4月3日 星期六

    Flex SDK4 Spark Component

    剛試了正名後的 Flash Builder 4,反應似乎比Flex builder 3 來得慢

    這版又有蠻多變化的,多了Spark Component,應該是UI都重寫過的新版介面

    (之前的元件都是MX:也叫Halo,Flex 4支援向上一版相容,share相同的base class)

    還有加強了對資料連結的部分,以前我一直覺得這塊做得不好

    剛剛在找ApplicationContrlBar就找不到,結果還真的是在Flex SDK 4中拿掉了

    連Canvas也掰了 哈,變成BorderContainer,VBox、HBox變成VGroup、HGroup

    很多的Component都要改一下使用習慣了

    兩年沒接觸RIA了,慢慢摸索吧:) 果然我還是對有興趣的東西才會熱血啊!

    我竟然會無聊到開始摳頂,Tracker GIS 我來了

    後記:
    新的state與法不能使用AddChild及RemoveChild,取代的定義元件在state本身上,用 includeIn及excludeFrom屬性,使用上變得更直覺,結構清楚、語法也更簡短

    2010年3月8日 星期一

    [flex] 行為 Behavior

    行為(Behavior)是由一組觸發器(trigger)與一組特效(effect)組成的。

    觸發器 trigger, ex: mouse click, window get focus....etc

    特效 effect,  對target component產生視覺或聽學的變化, ex: fading, resizing

    在flex中,event與trigger有不同意思,摘錄說明文件如下:
    Note: Triggers are not the same as events. For example, a Button control has both a mouseDown event and a mouseDownEffect trigger. The event initiates the corresponding effect trigger when a user clicks on a component. You use the mouseDown event property to specify the event listener that executes when the user clicks on the component. You use the mouseDownEffect trigger property to associate an effect with the trigger.

    在MXML中,使用者可以用 data binding來assign效果給控制項的事件trigger屬性, ex: mouseDownEffect property 等於 某個 特效ID

    Flex 實作特效的架構是由兩個class組成 a factory class and an instance class
    factory class的名稱就是特效名稱, ex: Zoom or Fade
    factory class會建立instance class的物件來達到target物件的效果;instance class 實作特效的邏輯,當effect trigger 發生或呼叫 play() method 來執行效果factory class會建立instance class的物件來達到target物件的效果。當特效結束Flex會回收instance object. 若有許多個 target components, factory class 會建立多個instance(one per target)

    
    
    
    
        
        
    
        
        
        
    
    


    Available effects

    Blur
    Dissolve
    Fade
    Move
    Glow
    Iris
    Pause
    Resize
    Rotate
    SoundEffect
    Wipe(Up, Down, Right, Left)
    Zoom


    Available triggers

    addedEffect
    creationCompleteEffect
    focusInEffect
    focusOutEffect
    showEffect、hideEffect
    mouseDownEffect
    mouseUpEffect
    moveEffect
    removedEffect
    resizeEffect
    rollOutEffect
    rollOverEffect

    -----

    對flex dev來說就是一些包好的元件(特效),一個特效可以想像是一個物件(in both AS3 and MXML),把特效物件應用於其他物件上,要學習的重點是如何使用及了解其設計的精神

    2010年3月7日 星期日

    flex 檢視遠始碼

    撰寫程式碼時,通常是在debug模式中 (檔案較大,帶有debug資訊)

    專案完成後,以release mode發佈(檔案較小)

    完成的程式可以允許user檢視原始碼,只要在發佈選項中勾選 view source

    2010年2月26日 星期五

    flex 透明背景

    Flex編譯完是一個SWF檔放在HTML中,想要透明背景,只需要用到嵌入的參數即可,wmode的參數為transparent (跟ActionScript本身無關)

    又Flex會自動產生背景上去,故應將backgroundAlpha=0

    2010年2月3日 星期三

    Flex 呼叫/傳值 給 javascript

    // flex 傳值給js demo
    // jsFuncName--> 網頁中要接收參數的functon名稱 (js函式名稱)
    // param--> 要傳遞的參數.變數名稱 (參數內容)
    /*flex*/
    var jsFuncName:String="test";
    var param:String ="message";
    ExternalInterface.call(jsFuncName, param);
    

    /*javascript*/
    <script language="javascript">
    function test(param){
      alert(param);
    }
    < /script>
    

    //p.s. allowScriptAccess需打開