云自無心水自閑

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

          首先是應(yīng)用的代碼, 在應(yīng)用中使用 <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>


          在這個應(yīng)用中主要是一個TagNavigator, 里面有三個標(biāo)簽頁. 每個標(biāo)簽頁加載一個模塊.
          下面是其中一個模塊的代碼:


          <?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>


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

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

              今天在一臺新的機(jī)器上, 裝開發(fā)環(huán)境, 下載了新的JDK1.6和Tomcat6. 安裝完畢后, Tomcat無法正常啟動,
          在Tomcat的Logs中發(fā)現(xiàn)有以下錯誤:

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

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

          這個問題可能和jakarta_servic加載動態(tài)鏈接庫的LOAD_WITH_ALTERED_PATH選項有關(guān).

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

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

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

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

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

           

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

           

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

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

           

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

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

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

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

          Flash包含的是一個時間線上的多個幀, 而Flex的SWF只包含2個幀. SystemManager, Preloader, DownloadProgressBar和少量工具類都在第一幀, 剩下的包括應(yīng)用代碼/ 內(nèi)嵌資源全都在第二幀中. 當(dāng)Flash Player下載下載SWF時, 只要接收到第一幀內(nèi)足夠的數(shù)據(jù), 就會實例化SystemManager, 由它來創(chuàng)建Preloader, 然后創(chuàng)建DownloadProgressBar, 這兩個對象會察看剩余字節(jié)的傳輸過程. 當(dāng)?shù)谝粠乃凶止?jié)傳輸完畢后, SystemManager發(fā)送enterFrame到第二幀, 然后是其他事件. 最后Application對象派發(fā)applicationComplete事件.

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

          一個動態(tài)修改Tree節(jié)點(diǎn)標(biāo)簽的例子

          <?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>



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

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

          今天準(zhǔn)備用一下, 已經(jīng)很久沒有使用的NetBeans來測試一個小程序.

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

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

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

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

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

          3. 在business中,添加了一個IServiceLocator的接口
          ServiceLocator實現(xiàn)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方法已經(jīng)廢棄,改為了getRemoteObject

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

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

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

           

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


          這個名字的改變反應(yīng)出FDS的一個重要的擴(kuò)展:LiveCycle Data Service與Adobe其他LiveCycle服務(wù)產(chǎn)品的整合將更緊密。

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

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

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

          僅列出標(biāo)題
          共29頁: First 上一頁 16 17 18 19 20 21 22 23 24 下一頁 Last 
          主站蜘蛛池模板: 广河县| 哈尔滨市| 黑山县| 平遥县| 云霄县| 洞口县| 东源县| 崇礼县| 佛冈县| 台江县| 博客| 沭阳县| 康定县| 迭部县| 湟中县| 庄河市| 太和县| 崇阳县| 焦作市| 大埔县| 汉寿县| 夏津县| 梅河口市| 望奎县| 泰来县| 筠连县| 静安区| 革吉县| 蚌埠市| 莎车县| 中江县| 阜城县| 桃园县| 宜城市| 平原县| 兴义市| 休宁县| 商城县| 四会市| 临猗县| 金山区|