<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    首先是應用的代碼, 在應用中使用 <mx:ModuleLoader >來加載模塊

    <?xml version="1.0"?>
    <!-- modules/URLModuleLoaderApp.mxml -->
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html">

        
    <mx:Panel
        title
    ="Module Example"
        height
    ="90%"
        width
    ="90%"
        paddingTop
    ="10"
        paddingLeft
    ="10"
        paddingRight
    ="10"
        paddingBottom
    ="10"
        
    >
        
        
    <mx:Label width="100%" color="blue"
        text
    ="Select the tabs to change the panel."/>
        
        
    <mx:TabNavigator id="tn"
        width
    ="100%"
        height
    ="100%"
        creationPolicy
    ="auto"
        
    >
        
            
    <mx:VBox id="vb1" label="Column Chart Module">
            
                
    <mx:Label id="l1" text="ColumnChartModule.swf"/>
                
    <mx:ModuleLoader url="ColumnChartModule.swf"/>
            
            
    </mx:VBox>
            
            
    <mx:VBox id="vb2" label="Pie Chart Module">
            
                
    <mx:Label id="l2" text="piehchartmodule.swf"/>
                
    <mx:ModuleLoader url="piechartmodule.swf"/>
            
            
    </mx:VBox>
            
            
    <mx:VBox id="vb3" label="Line Chart Module">
            
                
    <mx:Label id="l3" text="linehchartmodule.swf"/>
                
    <mx:ModuleLoader url="linechartmodule.swf"/>
            
            
    </mx:VBox>
        
        
    </mx:TabNavigator>
        
    </mx:Panel>

    </mx:Application>


    在這個應用中主要是一個TagNavigator, 里面有三個標簽頁. 每個標簽頁加載一個模塊.
    下面是其中一個模塊的代碼:


    <?xml version="1.0"?>
    <!--ColumnChartModule.mxml -->
    <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" >

        
    <mx:Script><![CDATA[
        
            
    import mx.collections.ArrayCollection;
            [Bindable]
            
    public var expenses:ArrayCollection = new ArrayCollection([
            
    {Month:"Jan", Profit:2000, Expenses:1500},
            
    {Month:"Feb", Profit:1000, Expenses:200},
            
    {Month:"Mar", Profit:1500, Expenses:500}
            ]);
            
        ]]
    ></mx:Script>
        
        
    <mx:ColumnChart id="myChart" dataProvider="{expenses}">
        
            
    <mx:horizontalAxis>
            
                
    <mx:CategoryAxis
                dataProvider
    ="{expenses}"
                categoryField
    ="Month"
                
    />
                
            
    </mx:horizontalAxis>
            
            
    <mx:series>
            
                
    <mx:ColumnSeries
                xField
    ="Month"
                yField
    ="Profit"
                displayName
    ="Profit"
                
    />
                
                
    <mx:ColumnSeries
                xField
    ="Month"
                yField
    ="Expenses"
                displayName
    ="Expenses"
                
    />
                
            
    </mx:series>
        
        
    </mx:ColumnChart>
        
        
    <mx:Legend dataProvider="{myChart}"/>
        
    </mx:Module>


    最后, 應用和三個模塊一共會生成4個SWF. 一般來說, 應用使用延遲加載策略. 也就是說, 如果你打開應用后, 從來都不使用其中的某個模塊, 那個這個模塊永遠不會被加載. 這次做的好處是, 加快了第一次打開應用的速度, 但隨之而來的缺點就是, 第一次打開使用某個功能, 需要加載模塊時, 會需要一點等待的時間.

    posted @ 2007-04-28 12:38 云自無心水自閑 閱讀(6349) | 評論 (6)編輯 收藏

        今天在一臺新的機器上, 裝開發環境, 下載了新的JDK1.6和Tomcat6. 安裝完畢后, Tomcat無法正常啟動,
    在Tomcat的Logs中發現有以下錯誤:

     javajni.c] [error] The specified module could not be found.

    到底是怎么回事呢?
    因為是模塊加載的問題, 所以拿出從systeminternals下載的FileMon來監測到底是哪個東西加載失敗了.
    啟動FileMon,
    然后, 嘗試啟動Tomcat, 結果當然是失敗了.
    然后在FileMon中過濾一下, 很快就找到了一個錯誤: MSVCR71.dll, 這個動態鏈接庫加載失敗.
    經過搜索后發現在JDK的bin目錄下有這個文件.
    將其復制到system32目錄下, 然后再啟動Tomcat, 果然成功了!

    這個問題可能和jakarta_servic加載動態鏈接庫的LOAD_WITH_ALTERED_PATH選項有關.

    posted @ 2007-04-26 18:01 云自無心水自閑 閱讀(5442) | 評論 (14)編輯 收藏

    最近judahfrangipane提出一種新的模式: DUDE.
    大多數人都知道MVC, 問題是如果不管具體情況, 生搬硬套MVC模式就會有一些問題. 一個應用中不是所有的東西都會有一個View, 也不是所有的東西都有一個獨立的Controller. 有時候, 可能會有多個Controller. 所以judahfrangipane推薦了一種新模式:

    Data Models 如果必要的話
    User Interface 如果必要的話
    Design patterns 如果必要的話
    Event handling 如果必要的話

    注意, 上述的四個部分不一定是全部必需的. 這樣, 你在進行應用設計的時候, 就少了一些條條框框. 而可以根據知識, 經驗, 設計模式來找到一個適合應用的途徑, 就象Chuck Hoffman所說的那樣, 不要"過度設計". 但是有兩個東西必須完全分離, 那就是data和UI.

    posted @ 2007-04-24 20:19 云自無心水自閑 閱讀(396) | 評論 (0)編輯 收藏

     

    新特性
    1. 支持AMF3, 這一點無疑是激動人心的.
    2. 支持JSON, 除了gateway.php外, 增加了json.php, 讓你的服務能夠使用JSON.
    有兩個例子:
    http://5etdemi.com/amfphp2/samples/ajaxtables/
    http://5etdemi.com/amfphp2/samples/spry/
    3. 一個新的service browser
    4. 在php端, 不再需要寫 $this->methodTable 這個東東了. 在amfphp 1.9 中 所有的方法默認為可以遠程訪問,除非方法名是以下劃線開始 或者 方法是 private 的(只有 php5 支持) 。

     

    posted @ 2007-04-21 16:06 云自無心水自閑 閱讀(887) | 評論 (0)編輯 收藏

    1. 先確定phpinfo()可以運行.
    2. 在通過phpinfo()查看兩個參數, 一個是php.ini的路徑, 一個extension_dir的配置
    我看到我的php.ini文件使用是的php安裝路徑下的, 而不是網上文章所說需要拷貝到c:\windows, 首先要確定你不要改錯了文件, 免得浪費時間.
    然后在php.ini文件中, 再修改extension_dir參數.
    3. 幾個與extension有關的dll需要去掉注釋.
    4. 需要設置一個PHPRC的環境變量, 指明php的安裝路徑.

     

    posted @ 2007-04-20 17:35 云自無心水自閑 閱讀(540) | 評論 (0)編輯 收藏

    首先介紹一下SystemManager. SystemManager是Flex應用的主控者, 它控制著應用窗口, Application實例, 彈出窗口, cursors, 并管理著ApplicationDomain中的類. SystemManager是FlashPlayer實例化的第一個類, 它存儲了主應用窗口的大小和位置信息, 保存其子組件比如:浮動彈出窗口和模態窗口的痕跡. 通過SystemManager可以獲得內嵌字體,樣式和document對象.
    自定義的可視化組件(UIComponent的子類)只有在調用過addChild()后, 才會有一個SystemManager賦給他們, 之前是Null. 所以在自定義可視化組件的構造函數中不要使用SystemManager.

    通常, Application對象創建時, 發生如下事件:
    1. 實例化Application對象
    2. 初始化Application.systemManager
    3. Application在初始化過程之前, 派發預初始化事件.
    4. 調用createChild(). 此時, 所有應用組件被創建, 所有組件的createChild()被調用.
    5. Application派發初始化事件, 表明所有的組件初始化完畢.
    6. 派發creationComplete事件
    7. Application對象添加到顯示列表中
    8. 派發applicationComplete事件

    大多數情況下, 我們使用<mx:Application>來創建application對象, 但如果使用ActionScript來創建的話, 那么建議不要在application的構造函數中創建組件, 推薦在crateChildren函數中, 主要是從性能方面考慮.

    Flash包含的是一個時間線上的多個幀, 而Flex的SWF只包含2個幀. SystemManager, Preloader, DownloadProgressBar和少量工具類都在第一幀, 剩下的包括應用代碼/ 內嵌資源全都在第二幀中. 當Flash Player下載下載SWF時, 只要接收到第一幀內足夠的數據, 就會實例化SystemManager, 由它來創建Preloader, 然后創建DownloadProgressBar, 這兩個對象會察看剩余字節的傳輸過程. 當第一幀的所有字節傳輸完畢后, SystemManager發送enterFrame到第二幀, 然后是其他事件. 最后Application對象派發applicationComplete事件.

    posted @ 2007-04-17 17:47 云自無心水自閑 閱讀(2797) | 評論 (3)編輯 收藏

    一個動態修改Tree節點標簽的例子

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"  horizontalAlign="left"
        creationComplete
    ="initApp()">
    <mx:Script><![CDATA[
      [Bindable]
    public var _xmlData:XML;
      [Bindable]
    private var _xmlCur:XML;
     
      
    private function initApp():void
      {
        
    //set the test data
        _xmlData =
          
    <node label="Mail Box">
            
    <node label="Inbox"/>
            
    <node label="Deleted mail"/>
            
    <node label="Personal"/>
            
    <node label="Professional"/>
            
    <node label="Spam"/>
            
    <node label="Sent"/>
          
    </node>                                             

        myTree.selectedItem 
    = myTree.dataProvider[0];        //select the first node
        callLater(expandTreeNode, [myTree.selectedItem]);    //use callLater to expand that node
      }//initApp
     
      
    private function expandTreeNode(myXMLNode:XML):void{
        myTree.expandChildrenOf(myXMLNode,
    true);              //expand the node
        _xmlCur = XML(myTree.selectedItem);                   //set the bindable variable
      }
     
      
    private function oChangeTree(oEvent:Event):void
      {
        _xmlCur 
    = XML(oEvent.target.selectedItem);            //set the bindable variable
      }//
     
      
    private function updateNode(oEvent:Event):void
      {
        var xmlSelected:XML 
    = XML(myTree.selectedItem)        //get a reference to the selected node
        xmlSelected.@label = tiLabel.text;                    //set the label attribute
      }//updateNode
       
        
    ]]
    ></mx:Script> 
      
    <mx:Label text="Update selected Node label" />
      
    <mx:TextInput id="tiLabel" text="{_xmlCur.@label}" change="updateNode(event)" />
      
    <mx:HBox>
        
    <mx:Tree id="myTree" width="200" height="200" labelField="@label"
            showRoot
    ="true"
            dataProvider
    ="{_xmlData}"
            change
    ="oChangeTree(event)" />
     
    <mx:DataGrid id="dg" dataProvider="{_xmlData.node}"  >
        
    <mx:columns>
          
    <mx:Array>
            
    <mx:DataGridColumn headerText="Name" dataField="@label"  />
           
    </mx:Array>
        
    </mx:columns>
      
    </mx:DataGrid>
      
    <mx:Label text="{_xmlCur.@label}" />
      
    </mx:HBox>
          
    </mx:Application>



    應用中主要包含4個組件, 一個TextInput, 一個Tree, 一個DataGrid, 一個Label
    1. 先看Tree, Tree使用_xmlData作為數據源, 定義一個change事件處理函數, 將當前節點存儲到_xmlCur變量中.
    2. TextInput的數據源就是_xmlCur的label屬性, 也就是Tree當前節點的標簽. 他也定義了一個change事件處理函數, 在TextInput中的文本改變時, 將新的文本賦值給Tree當前節點的標簽, 也就是改變當前Tree節點的標簽值. 值得注意的是賦值并不是直接給Tree中或者節點中的某個屬性, 而是通過修改數據源Xml的值來改變的.
    3. DataGrid的使用顯示了如何在DataGrid中展示Xml的技巧.
    4. 最后一個Label只是簡單的顯示當前節點的標簽值, 與TextInput的文本保持同步

    posted @ 2007-04-15 20:50 云自無心水自閑 閱讀(6118) | 評論 (0)編輯 收藏

    今天準備用一下, 已經很久沒有使用的NetBeans來測試一個小程序.

    在開始菜單中, 點了一下, 結果沒有出現我期待的IDE, 而是彈出一個對話框, 說無法在C:盤的JDK目錄中找到Java.exe.
    奇怪啊, 我的JDK是安裝在D:的啊.

    于是, 在NetBeans的目錄下, 查看了一下, 看到有個etc目錄, 進去后, 打到了netbeans.conf. 打開一看, 果然NetBeans的JDK路徑配置在此.
    將此文件中的路徑改為正確路徑. OK, 問題解決, NetBeans又正常啟動了.

    posted @ 2007-04-13 13:02 云自無心水自閑 閱讀(2211) | 評論 (3)編輯 收藏

    1. Caringorm2.1的包中增加了完整的ASDoc文檔

    2. 增加Locale,錯誤信息的國際化的處理。
    添加了一個Properties文件,
    添加了com.adobe.cairngorm.CairngormMessageCodes和com.adobe.cairngorm.CairngormError兩個類,其中CairngormMessageCodes用于定義Properties文件中的鍵值,而CairngormError封裝了Error,在應用執行的過程不再直接拋出Error,而拋出一個CairngormError,其中帶一個參數就是MessageCode,根據MessageCode到Properties文件中取出相應的消息。

    3. 在business中,添加了一個IServiceLocator的接口
    ServiceLocator實現IServiceLocator接口,相比以前增加了以下幾個方法:
    a、public function getRemoteObject( serviceId : String ) : RemoteObject // Return the RemoteObject for the given service id.
    b、public function getHTTPService( serviceId : String ) : HTTPService // Return the HTTPService for the given service id.
    c、public function getWebService( serviceId : String ) : WebService // Return the WebService for the given service id.
    d、public function getConsumer( serviceId : String ) : Consumer  // Return the message Consumer for the given service id.
    e、public function getProducer( serviceId : String ) : Producer // Return the message Produce for the given service id.
    f、public function getDataService( serviceId : String ) : DataService // Return the DataService for the given service id.
    g、public function setCredentials( username : String, password : String ) : void // Set the credentials for all registered services. Note that services that use a proxy or a third-party adapter to a remote endpoint will

    原來的getService和getInvokerService方法已經廢棄,改為了getRemoteObject

    4. 在Command中,增加了ICommand接口,原來的Command接口繼承ICommand

    5. 在VO中,增加了IValueObject接口,原來的ValueObject繼承IValueObject接口

    上面添加的幾個接口,除了IServiceLocator相較2.0版本有了較大的變化,增加了一些方法,其他的幾個接口,依我所見,純粹是換了名字而已。

     

    posted @ 2007-04-10 19:48 云自無心水自閑 閱讀(1402) | 評論 (0)編輯 收藏


    這個名字的改變反應出FDS的一個重要的擴展:LiveCycle Data Service與Adobe其他LiveCycle服務產品的整合將更緊密。

    LiveCycel Data Service將有一些重要的新的變化:
    1. 提升數據服務消息的性能
    2. 與PDF、J2EE門戶等的集成
    3. 另外還有一些針對未來Apollo應用的很重要的功能,比如:本地數據緩存和脫機消息等。

    下載地址:http://labs.adobe.com/technologies/livecycle_dataservices2_5/

    posted @ 2007-04-04 19:07 云自無心水自閑 閱讀(2682) | 評論 (0)編輯 收藏

    僅列出標題
    共29頁: First 上一頁 16 17 18 19 20 21 22 23 24 下一頁 Last 
    主站蜘蛛池模板: 免费看无码自慰一区二区| 久久成人免费播放网站| 成年女人色毛片免费看| 亚洲国产成人九九综合| 57pao一国产成视频永久免费 | 成人性做爰aaa片免费看| 久久久久亚洲AV成人网人人网站| 男男黄GAY片免费网站WWW| 国产jizzjizz视频免费看| 青娱乐在线视频免费观看| 国产yw855.c免费视频| 人体大胆做受免费视频| 中文字幕中韩乱码亚洲大片| 东方aⅴ免费观看久久av| 亚洲高清在线视频| 麻豆国产精品免费视频| 国产亚洲福利在线视频| 国产在线19禁免费观看国产 | 久久国产精品免费观看| 亚洲天天在线日亚洲洲精| 国产大片免费网站不卡美女 | 亚洲丰满熟女一区二区v| 岛国片在线免费观看| 青草久久精品亚洲综合专区| 国产精品亚洲综合专区片高清久久久 | 在线免费视频你懂的| 亚洲小视频在线观看| 手机在线看永久av片免费| 亚洲国产精品18久久久久久| 亚洲人AV永久一区二区三区久久| 野花香在线视频免费观看大全| 亚洲第一页在线播放| 国产免费小视频在线观看| 中文永久免费观看网站| 亚洲伊人久久大香线蕉影院| 国产美女精品视频免费观看| 黄网站免费在线观看| 亚洲另类无码专区丝袜| 亚洲综合伊人久久大杳蕉| 99久久这里只精品国产免费| 日亚毛片免费乱码不卡一区|