云下的天空

          堅(jiān)持 隨心而動(dòng) 走自己的路

           

          2011年6月5日

          訪問(wèn)控制符

          1.訪問(wèn)修飾符(access modifier)

          ①public(公共的):被public所修飾屬性和方法可以被所有類訪問(wèn).

          ②protected(受保護(hù)的):被protected所修飾的屬性和方法可以在類的內(nèi)部,相同包以及該類的子類所訪問(wèn)(可以被子類所繼承下來(lái)).

          ③private(私有的):被private所修飾的屬性和方法只能在該類內(nèi)部使用.

          ④默認(rèn)的(不加任何訪問(wèn)修飾符):在類內(nèi)部可以訪問(wèn),以及相同包下面的類使用.

          posted @ 2011-07-02 23:38 天空布藍(lán) 閱讀(374) | 評(píng)論 (0)編輯 收藏

          ORACLE TRUNC()函數(shù)



          oracle trunc()函數(shù)的用法

          1.TRUNC(for dates)
          TRUNC函數(shù)為指定元素而截去的日期值。
          其具體的語(yǔ)法格式如下:
          TRUNC(date[,fmt])
          其中:
          date 一個(gè)日期值
          fmt 日期格式,該日期將由指定的元素格式所截去。忽略它則由最近的日期截去

          2.TRUNC(for number)
          TRUNC函數(shù)返回處理后的數(shù)值,其工作機(jī)制與ROUND函數(shù)極為類似,只是該函數(shù)不對(duì)指定小數(shù)前或后的部分做相應(yīng)舍入選擇處理,而統(tǒng)統(tǒng)截去。
          其具體的語(yǔ)法格式如下
          TRUNC(number[,decimals])
          其中:
          number 待做截取處理的數(shù)值
          decimals 指明需保留小數(shù)點(diǎn)后面的位數(shù)。可選項(xiàng),忽略它則截去所有的小數(shù)部分
          下面是該函數(shù)的使用情況:
          TRUNC(89.985,2)=89.98
          TRUNC(89.985)=89
          TRUNC(89.985,-1)=80
          注意:第二個(gè)參數(shù)可以為負(fù)數(shù),表示為小數(shù)點(diǎn)左邊指定位數(shù)后面的部分截去,即均以0記。

          {


          format為day時(shí),只精確到天,而不管幾年幾月只要是符合的day就可以了,要想確定一年中的某月的某一天就要用trunc(date,''dd'').

          通俗的說(shuō)吧,format為年時(shí),精確到-----年

          為月時(shí),精確到------年,月(不管哪年,只要是相同的月和哪天)
          為日時(shí),精確到------年,月,日(不管哪年的哪月,只關(guān)心是哪天)


          }

          posted @ 2011-06-30 21:34 天空布藍(lán) 閱讀(338) | 評(píng)論 (0)編輯 收藏

          Oracle字符串連接的方法

          和其他數(shù)據(jù)庫(kù)系統(tǒng)類似,Oracle字符串連接使用“||”進(jìn)行字符串拼接,其使用方式和MSSQLServer中的加號(hào)“+”一樣。

          比如執(zhí)行下面的SQL語(yǔ)句:

          SELECT '工號(hào)為'||FNumber||'的員工姓名為'||FName FROM T_Employee
          WHERE FName IS NOT NULL

          除了“||”,Oracle還支持使用CONCAT()函數(shù)進(jìn)行字符串拼接,比如執(zhí)行下面的SQL語(yǔ)句:
          SELECT CONCAT('工號(hào):',FNumber) FROM T_Employee

          如果CONCAT中連接的值不是字符串,Oracle會(huì)嘗試將其轉(zhuǎn)換為字符串,比如執(zhí)行下面的SQL語(yǔ)句:

          SELECT CONCAT('年齡:',FAge) FROM T_Employee

          與MYSQL的CONCAT()函數(shù)不同,Oracle的CONCAT()函數(shù)只支持兩個(gè)參數(shù),不支持兩個(gè)以上字符串的拼接,比如下面的SQL語(yǔ)句在Oracle中是錯(cuò)誤的:
          SELECT CONCAT('工號(hào)為',FNumber,'的員工姓名為',FName) FROM T_Employee
          WHERE FName IS NOT NULL
          運(yùn)行以后Oracle會(huì)報(bào)出下面的錯(cuò)誤信息:
          參數(shù)個(gè)數(shù)無(wú)效

          如果要進(jìn)行多個(gè)字符串的拼接的話,可以使用多個(gè)CONCAT()函數(shù)嵌套使用,上面的SQL可以如下改寫:
          SELECT CONCAT(CONCAT(CONCAT('工號(hào)為',FNumber),'的員工姓名為'),FName) FROM
          T_Employee
          WHERE FName IS NOT NULL

          posted @ 2011-06-27 21:10 天空布藍(lán) 閱讀(48002) | 評(píng)論 (0)編輯 收藏

          (轉(zhuǎn)) java環(huán)境變量配置

            

          windows xp下配置JDK環(huán)境變量:
                1.安裝JDK,安裝過(guò)程中可以自定義安裝目錄等信息,例如我們選擇安裝目錄為D:\java\jdk1.5.0_08;

            2.安裝完成后,右擊“我的電腦”,點(diǎn)擊“屬性”;

                3.選擇“高級(jí)”選項(xiàng)卡,點(diǎn)擊“環(huán)境變量”;

                4.在“系統(tǒng)變量”中,設(shè)置3項(xiàng)屬性,JAVA_HOME,PATH,CLASSPATH(大小寫無(wú)所謂),若已存在則點(diǎn)擊“編輯”,不存在則點(diǎn)擊“新建”;

                5.JAVA_HOME指明JDK安裝路徑,就是剛才安裝時(shí)所選擇的路徑D:\java\jdk1.5.0_08,此路徑下包括lib,bin,jre等文件夾(此變量最好設(shè)置,因?yàn)橐院筮\(yùn)行tomcat,eclipse等都需要依*此變量);
               

                 Path使得系統(tǒng)可以在任何路徑下識(shí)別java命令,設(shè)為:

          %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

              CLASSPATH為java加載類(class or lib)路徑,只有類在classpath中,java命令才能識(shí)別,設(shè)為:

          .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (要加.表示當(dāng)前路徑)

            %JAVA_HOME%就是引用前面指定的JAVA_HOME;

                 6.“開(kāi)始”->;“運(yùn)行”,鍵入“cmd”;

                 7.鍵入命令“java -version”,“java”,“javac”幾個(gè)命令,出現(xiàn)畫面,說(shuō)明環(huán)境變量配置成功;

                 8.好了,打完收工。下面開(kāi)始你的第一個(gè)java程序吧。

          下面講講java幾個(gè)環(huán)境變量的含義和linux下的配置方法:

          通常,我們需要設(shè)置三個(gè)環(huán)境變量:JAVA_HOME、PATH 和 CLASSPATH。

          JAVA_HOME:該環(huán)境變量的值就是 Java 所在的目錄,一些 Java 版的軟件和一些 Java 的工具需要用到該變量,設(shè)置 PATH 和 CLASSPATH 的時(shí)候,也可以使用該變量以方便設(shè)置。

          PATH:指定一個(gè)路徑列表,用于搜索可執(zhí)行文件的。執(zhí)行一個(gè)可執(zhí)行文件時(shí),如果該文件不能在當(dāng)前路徑下找到,則依次尋找 PATH 中的每一個(gè)路徑,直至找到。或者找完 PATH 中的路徑也不能找到,則報(bào)錯(cuò)。Java 的編譯命令 (javac),執(zhí)行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安裝路徑下的 bin 目錄中。因此我們應(yīng)該將該路徑添加到 PATH 變量中。

          CLASSPATH:也指定一個(gè)路徑列表,是用于搜索 Java 編譯或者運(yùn)行時(shí)需要用到的類。在 CLASSPATH 列表中除了可以包含路徑外,還可以包含 .jar 文件。Java 查找類時(shí)會(huì)把這個(gè) .jar 文件當(dāng)作一個(gè)目錄來(lái)進(jìn)行查找。通常,我們需要把 JDK 安裝路徑下的 jre\lib\rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。

          PATH 和 CLASSPATH 都指定路徑列表,列表中的各項(xiàng) (即各個(gè)路徑) 之間使用分隔符分隔。在 Windows 下,分隔符是分號(hào) (;),而在 Linux 下,分隔符是冒號(hào) (:)。

          下面分別說(shuō)明三個(gè)環(huán)境變量在 Windows 和 Linux 下如何設(shè)置,不過(guò)在此之前,我們需要做個(gè)假設(shè)。假設(shè) JDK 在 Windows 下的安裝路徑是 C:\jdk\,在 Linux 下的安裝路徑是 /usr/local/jdk/。那么,安裝后的 JDK 至少會(huì)包括如下內(nèi)容:

          C:\jdk (/usr/local/jdk)
          |-- bin
          |-- demo
          |-- include
          |-- jre
          | |-- bin
          | `-- lib
          `-- lib

          ***** 在 Windows 下設(shè)置

          Windows 下使用 set 命令設(shè)置環(huán)境變量,為了使每一次啟動(dòng)計(jì)算機(jī)都設(shè)置這些環(huán)境變量,應(yīng)該在系統(tǒng)盤根目錄下的 autoexec.bat 文件中進(jìn)行設(shè)置,如:

          set JAVA_HOME=C:\jdk
          set PATH=%JAVA_HOME%\bin;C:\Windows;C:\Windows\Command
          set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;.

          有些版本的 Windows 不能用 %變量名% 來(lái)替換環(huán)境變量的內(nèi)容,那么就只好直接寫 C:\jdk 而不是 %JAVA_HOME% 了。另外,C:\Windows 和 C:\Windows\Command 是 Windows 會(huì)自動(dòng)加入路徑的,所以可以從設(shè)置中去掉。如果在 autoexec.bat 中已經(jīng)設(shè)置了 PATH,那只需要將 %JAVA_HOME%\bin 加到原來(lái)設(shè)置 PATH 的那條語(yǔ)句中就行了。

          CLASSPATH 也可以根據(jù)需要設(shè)置或者加入其它的路徑,比如你想把自己寫的一些類放在 C:\java 中,就可以把 C:\java 也添加到 CLASSPATH 中去,set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;C:\java;.。

          注意,在 CLASSPATH 中包含了一個(gè)“當(dāng)前目錄 (.)”。包含了該目錄后,就可以到任意目錄下去執(zhí)行需要用到該目錄下某個(gè)類的 Java 程序,即使該路徑并未包含在 CLASSPATH 中也可以。原因很簡(jiǎn)單:雖然沒(méi)有明確的把該路徑包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此時(shí)就代表了該路徑,如:

          假設(shè)在 C:\java 目錄下有可運(yùn)行的類 HelloJava.class,那么

          C:\> set CLASSPATH=C:\jdk\jre\lib\rt.jar;. // 設(shè)置 CLASSPATH 環(huán)境變量,注意最后有一個(gè) “.”
          C:\> cd java // 轉(zhuǎn)到 C:\java 目錄
          C:\java> java HelloJava // 運(yùn)行 HelloJava
          Hello, Java. // 運(yùn)行結(jié)果
          C:\java> _

          **** 在 Linux 下設(shè)置

          Linux 下使用“變量名=變量值”設(shè)置變量,并使用 export 命令將其導(dǎo)出為環(huán)境變量。為了使每一次登錄都自動(dòng)設(shè)置好這些變量,你需要在 ~/.bash_profile 里或者 ~./bashrc 里進(jìn)行設(shè)置,如

          export JAVA_HOME=/usr/local/jdk
          export PATH=$JAVA_HOME/bin:$PATH
          export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.

          設(shè)置 PATH 時(shí)用的 $JAVA_HOME 是指替換變量 JAVA_HOME 的值到 $JAVA_HOME 所在位置。如上句實(shí)際就是 export PATH=/usr/local/jdk/bin:$PATH。這句中 $PATH 也是同樣的作用,不過(guò)這里的 PATH 是指以前設(shè)置的 PATH 變量的值,而非本次設(shè)置 PATH 變量的值。

          注意,在 CLASSPATH 中包含了一個(gè)“當(dāng)前目錄 (.)”。包含了該目錄后,就可以到任意目錄下去執(zhí)行需要用到該目錄下某個(gè)類的 Java 程序,即使該路徑并未包含在 CLASSPATH 中也可以。原因很簡(jiǎn)單:雖然沒(méi)有明確的把該路徑包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此時(shí)就代表了該路徑,例如

          假設(shè)在 /home/fancy/java 目錄下有可運(yùn)行的類 HelloJava.class,那么

          [fancy@matrix fancy]$ export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. // 設(shè)置 CLASSPATH,注意最后的“.”
          [fancy@matrix fancy]$ cd ~/java // 轉(zhuǎn)到 /home/fancy/java
          [fancy@matrix java]$ pwd // 顯示當(dāng)前目錄
          /home/fancy/java // 當(dāng)前目錄是 /home/fancy/java
          [fancy@matrix java]$ java HelloJava // 運(yùn)行 HelloJava
          Hello, Java // 運(yùn)行結(jié)果
          [fancy@matrix java]$ _

          ***** 實(shí)例分析

          只是操作系統(tǒng)不同,略有差別。

          兩個(gè)例子都提到一個(gè)“可運(yùn)行的類”,它是指包含了 public static void main(String[] args) 方法的類,這將在下一章 HelloJava 一節(jié)中詳述。例中的 CLASSPATH 均未包含 HelloJava.class 所在的目錄(C:\java, /home/fancy/java),但是均包含了當(dāng)前目錄 (.)。因此轉(zhuǎn)到包含 HelloJava.class 的目錄下去執(zhí)行 java HelloJava,在 Java 尋找到 CLASSPATH 中的“. (當(dāng)前目錄,C:\java, /home/fancy/java)”時(shí),找到了 HelloJava.class,運(yùn)行成功。

          posted @ 2011-06-24 23:15 天空布藍(lán) 閱讀(339) | 評(píng)論 (0)編輯 收藏

          (轉(zhuǎn)載)冒泡事件理解3

               摘要:    我花了一天的時(shí)間總算理解了冒泡事件  這篇文章給了我很大的幫助  原文鏈接:http://enboga.iteye.com/blog/2147808.2 事件機(jī)制的工作流程 8.2.1 關(guān)于事件流 目標(biāo)對(duì)象:派發(fā)事件的對(duì)象當(dāng)事件發(fā)生后生成一個(gè)攜帶數(shù)據(jù)的對(duì)象,然后檢查目標(biāo)對(duì)象是否存在顯示層中,并遍歷從根容器一直到目標(biāo)對(duì)象所在位置的所有...  閱讀全文

          posted @ 2011-06-05 22:29 天空布藍(lán) 閱讀(786) | 評(píng)論 (0)編輯 收藏

          (轉(zhuǎn)載)冒泡事件理解2

          1.

          項(xiàng)目 右鍵 新建 包

          右鍵單擊新建的包,新建 actionscript類

          代碼如下(代碼1)

          package btnEvents
          {
              import flash.events.Event;
              
              public class btnEvent1 extends Event
              {
                  public static var EVENT_NAME:String="customEvent";

                  //該事件所攜帶的數(shù)據(jù)
                  public var EventData:String;        
                  public function btnEvent1(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
                  {
                      super(type, bubbles, cancelable);
                  }
              }
          }

           

          2.

          主MXML文件如下所示

          <?xml version="1.0" encoding="utf-8"?>
          <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                         xmlns:s="library://ns.adobe.com/flex/spark" 
                         xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:Modules="Modules.*"
                         creationComplete="init()"
                         >

              <fx:Script>
                  <![CDATA[
                      import btnEvents.btnEvent1;
                      private function init():void{
                          this.addEventListener(btnEvent1.EVENT_NAME,appCatchMyEvent,true);
                          this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,true);
                      }
                      private function sendEvent(flag:int):void{
                          var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME);
                          if(flag == 1){
                              Event.EventData = "內(nèi)部按鈕";
                              btn1.dispatchEvent(Event);//將事件分派到事件流中
                          }else{
                              Event.EventData = "外部按鈕";
                              btn2.dispatchEvent(Event);//將事件分派到事件流中
                          }
                      }
                      private function appCatchMyEvent(par_event:btnEvent1):void{
                          label1.text += par_event.currentTarget.id+par_event.EventData;//currentTarget是傳播路徑上的當(dāng)前捕捉者
                      }
                      private function panelCatchEvent(par_event:btnEvent1):void{
                          label1.text += par_event.currentTarget.id+par_event.EventData;
                      }
                  ]]>
              </fx:Script>

              <fx:Declarations>
                  <!-- 將非可視元素(例如服務(wù)、值對(duì)象)放在此處 -->
              </fx:Declarations>
              <s:Panel id="panel1" x="198" y="128" width="250" height="200">
                  <s:Button click="sendEvent(1)" id="btn1" x="89" y="61" label="內(nèi)部BTN"/>
              </s:Panel>
              <s:Button id="btn2" click="sendEvent(2)" x="378" y="360" label="外部BTN"/>
              <s:Label id="label1" x="198" y="66" text="事件來(lái)自~~~~" width="189"/>

          </s:Application>

          3.

          運(yùn)行程序

          點(diǎn)擊“內(nèi)部BTN:

          結(jié)果如圖所示

          image

          大家可以看到
          事件是從外層容器到內(nèi)層容器依次執(zhí)行的

           

          4.

          刷新頁(yè)面

          點(diǎn)擊“外部BTN”

          結(jié)果如圖所示

          image

          因?yàn)槭录囊l(fā)者沒(méi)有在panl1中所以不會(huì)再觸發(fā)panel1的事件了

           

          以上說(shuō)的都是非冒泡事件,事件的執(zhí)行順序是從外層容器到內(nèi)層容器執(zhí)行的

           

          5.

          如果要在事件冒泡階段捕捉事件

          創(chuàng)建事件的代碼為

          var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一個(gè)參數(shù)bubbles應(yīng)為true

          事件監(jiān)聽(tīng)的代碼應(yīng)如下

          this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//最后一個(gè)參數(shù)useCapture是false

          這樣設(shè)置后就是冒泡事件,事件的執(zhí)行順序是從內(nèi)層容器到外層容器執(zhí)行的

           

          6.

          如果即要捕捉非冒泡事件,又要捕捉冒泡事件

          那么

          創(chuàng)建事件的代碼為

          var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一個(gè)參數(shù)bubbles應(yīng)為true

          同時(shí),監(jiān)聽(tīng)事件的代碼還要設(shè)置兩次

          this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,true);//非冒泡監(jiān)聽(tīng)
          this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//冒泡監(jiān)聽(tīng)

          這樣設(shè)置之后,事件先從外部執(zhí)行到內(nèi)部,在從內(nèi)部執(zhí)行到外部 

          原文鏈接:http://www.cnblogs.com/liulun/archive/2010/11/23/1885053.html



          posted @ 2011-06-05 18:08 天空布藍(lán) 閱讀(423) | 評(píng)論 (0)編輯 收藏

          (轉(zhuǎn)載)冒泡事件理解

            原文鏈接:http://bbs.9ria.com/viewthread.php?tid=59522

          發(fā)生事件時(shí),該事件在事件流的三個(gè)階段中移動(dòng):
          捕獲階段,該階段從顯示列表層次結(jié)構(gòu)的頂部流動(dòng)到目標(biāo)節(jié)點(diǎn)之前的節(jié)點(diǎn);
          目標(biāo)階段,該階段只包括目標(biāo)節(jié)點(diǎn);
          冒泡階段,該階段從目標(biāo)節(jié)點(diǎn)的后續(xù)節(jié)點(diǎn)沿顯示列表層次結(jié)構(gòu)向上往回流動(dòng)。
          EventDispatcher 類實(shí)現(xiàn) IEventDispatcher 接口,并且是 DisplayObject 類的基類。 EventDispatcher 類允許顯示列表上的任何對(duì)象都是一個(gè)事件目標(biāo),同樣允許使用 IEventDispatcher 接口的方法。 
          事件目標(biāo)是 Flash ® Player 事件模型的重要組成部分。 

          事件目標(biāo)是事件如何通過(guò)顯示列表層次結(jié)構(gòu)這一問(wèn)題的焦點(diǎn)
          當(dāng)發(fā)生鼠標(biāo)單擊或按鍵等事件時(shí),F(xiàn)lash Player 會(huì)將事件對(duì)象調(diào)度到從顯示列表根開(kāi)始的事件流中
          然后該事件對(duì)象在顯示列表中前進(jìn),直到到達(dá)事件目標(biāo),然后從這一點(diǎn)開(kāi)始其在顯示列表中的回程
          在概念上,到事件目標(biāo)的此往返行程被劃分為三個(gè)階段:
          、、捕獲階段包括從根到事件目標(biāo)節(jié)點(diǎn)之前的最后一個(gè)節(jié)點(diǎn)的行程,
          、、目標(biāo)階段僅包括事件目標(biāo)節(jié)點(diǎn),
          、、冒泡階段包括回程上遇到的任何后續(xù)節(jié)點(diǎn)到顯示列表的根。
          通常,使用戶定義的類能夠調(diào)度事件的最簡(jiǎn)單方法是擴(kuò)展 EventDispatcher。 如果無(wú)法擴(kuò)展(即,如果該類已經(jīng)擴(kuò)展了另一個(gè)類),則可以實(shí)現(xiàn) IEventDispatcher 接口,創(chuàng)建 EventDispatcher 成員,并編寫一些簡(jiǎn)單的掛鉤,將調(diào)用連接到聚合的 EventDispatcher 中。
          二、說(shuō)明 首先明確幾個(gè)概念
          1、顯示列表根:假如你有abc 三個(gè)panel c在b中 b在a中這樣的嵌套關(guān)系 那么c-->b-->a  a就是列表的根
          2、目標(biāo):假如你在c上發(fā)了一個(gè)事件那么c就是事件的目標(biāo) 有些復(fù)雜控件有click事件 不過(guò)發(fā)事件的目標(biāo)不是它本身 那個(gè)currenttarget才是它本身
          3、事件傳遞的流程:首先你派發(fā)事件在c上 事件首先從a-->b-->c-->b-->a這樣一個(gè)完整的循環(huán)
          4、捕獲階段:事件在a-->b的這個(gè)階段(注意和b-->a不同)
          5、目標(biāo)階段 僅當(dāng)事件到達(dá)c的時(shí)候
          6、冒泡階段 b-->a這樣經(jīng)過(guò)的階段
          三、具體應(yīng)用
          當(dāng)你在c上面派發(fā)了一個(gè)事件  然后你想在c的頂層a上監(jiān)聽(tīng)到
          你可能這么做
          首先你在c上this.dispatchEvent(new Event("cevent",false)); 這樣發(fā)了一個(gè)事件
          藍(lán)色字體 意味著這個(gè)事件只會(huì)在捕獲和目標(biāo)階段 a->b->c
          然后你在a上監(jiān)聽(tīng)這個(gè)事件 a.addEventListener("cevent",function():void{trace("原始論壇目標(biāo)發(fā)出的事件");},false);
          紅色字體 意味著你打算 讓偵聽(tīng)器只在目標(biāo)或冒泡階段處理事件 就是c->b->a
          四、簡(jiǎn)單說(shuō)來(lái)就是 你發(fā)出的事件走的是a->b->c的階段 而你偵聽(tīng)只想偵聽(tīng)b->a階段c只走了一次所以不會(huì)檢測(cè)到c的事件
          任何一個(gè)false改成true就可以了
          藍(lán)色改成true意味著事件在所有過(guò)程傳遞
          紅色改成true意味著偵聽(tīng)捕獲階段
          再簡(jiǎn)單說(shuō) 新建事件不冒泡 默認(rèn)偵聽(tīng)只偵聽(tīng)冒泡

          posted @ 2011-06-05 18:04 天空布藍(lán) 閱讀(543) | 評(píng)論 (0)編輯 收藏

          (轉(zhuǎn)載) flex4 css語(yǔ)法

            

          我們將展示以下幾種例子:通過(guò)命名空間來(lái)定義全局CSS樣式;通過(guò)具體組件的ID來(lái)定義個(gè)別組件的樣式;通過(guò)類里面的組件ID來(lái)定義樣式;通過(guò)組件樣式定義樣式。

          詳細(xì)說(shuō)明:

          首先讓我們新建一個(gè)application。如下。包含兩個(gè)按鈕(一個(gè)Halo按鈕和一個(gè)Spark按鈕)和一個(gè)包含在容器VGroup里面progressBar。代碼如下:

          <?xml version=”1.0″ encoding=”utf-8″?>

          <s:Application xmlns:fx=”http://ns.adobe.com/mxml/2009″

          xmlns:s=”library://ns.adobe.com/flex/spark”

          xmlns:mx=”library://ns.adobe.com/flex/halo” minWidth=”1024″ minHeight=”768″>

                  <fx:Style source=”global.css” />

                  <s:layout>

                          <s:VerticalLayout />

                  </s:layout>

                  <mx:Button label=”Click me, I’m a Halo button!”  id=”haloButton” />

                  <s:Button label=”Click me, I’m a spark cool and funkybutton !” id=”sparkButton” />

                  <s:VGroup id=”myBox”>

                          <mx:ProgressBar />

                  </s:VGroup>

          </s:Application>

          在CSS里面需要導(dǎo)入相應(yīng)的命名空間,如:

          @namespace s “library://ns.adobe.com/flex/spark”;

          @namespace mx “library://ns.adobe.com/flex/halo”;

          定制全局樣式

          mx|Button

          {

          color:#ffffff;

          }

          s|Button

          {

          color:#000000;

          }

          當(dāng)然也可在組件的屬性里面指定樣式類,然后在css中聲明相應(yīng)的樣式類

          .myStyleClass

             {

             color:#ff0000;

             }

          組件ID設(shè)置相應(yīng)的組件樣式

          #haloButton

             {

             base-color:#0000ff;

             }

          #sparkButton

             {

             base-color:#ffffff;

             }

          類里面的組件ID來(lái)定義樣式

          s|VGroup#myBox mx|ProgressBar

             {

             color:#ff0000;

             }

          通過(guò)狀態(tài)定義樣式

          s|Button:down

             {

             color:#33CC33;

             }

          總結(jié):

          通過(guò)這些語(yǔ)法,我們能夠更輕松的為組件制作樣式了。

          posted @ 2011-06-05 15:56 天空布藍(lán) 閱讀(2425) | 評(píng)論 (0)編輯 收藏

          (轉(zhuǎn)載)兩個(gè).mxml文件之間鏈接的簡(jiǎn)單方法

          test.mxml主界面:

          <?xml version="1.0" encoding="utf-8"?>
          <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                  xmlns:n1="com.*" layout="absolute">
                  
                  <mx:ViewStack width="100%" height="100%" id="test" >
                          <n1:test id="test_1"/><!--第一個(gè)頁(yè)面(test1.mxml文件)-->
                          <n1:test id="test_2"/><!--第二個(gè)頁(yè)面(test2.mxml文件)-->
                  </mx:ViewStack>
          </mx:Application>

          =====test1.mxml代碼:

          <?xml version="1.0" encoding="utf-8"?>
          <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
                  <mx:Script>
                          <![CDATA[
                                  public function test1():void
                                  {
                                          parentDocument.test.selectedChild=parentDocument.test_2;
                                  }
                          ]]>
                  </mx:Script>
                  <mx:Button label="跳轉(zhuǎn)到test2.mxml" click="test1()"/>
          </mx:Canvas>

          =====要從test2.mxml返回到test1.mxml頁(yè)面:

          <?xml version="1.0" encoding="utf-8"?>
          <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
                  <mx:Script>
                          <![CDATA[
                                  public function test1():void
                                  {
                                          parentDocument.test.selectedChild=parentDocument.test_1;
                                  }
                          ]]>
                  </mx:Script>
                  <mx:Button label="跳轉(zhuǎn)到test2.mxml" click="test1()"/>
          </mx:Canvas>

          這樣就可以實(shí)現(xiàn)簡(jiǎn)單的頁(yè)面調(diào)整,類似于頁(yè)面的超鏈接
           
          原文鏈接:http://blog.csdn.net/sws9999/archive/2011/03/11/6238897.aspx


          posted @ 2011-06-05 15:49 天空布藍(lán) 閱讀(922) | 評(píng)論 (0)編輯 收藏

          (轉(zhuǎn)載)flex制作一個(gè)用戶登錄框(含驗(yàn)證碼)

               原文地址:http://www.cnblogs.com/qiantuwuliang/archive/2010/04/09/1708119.html

           
             
          代碼
          <?xml version="1.0" encoding="utf-8"?>  
          <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
                       fontSize
          ="12" horizontalAlign="center" creationComplete="init()">  

           
          <mx:Script>  
            
          <![CDATA[  
             import mx.controls.Alert;  
               
             private 
          function init():void{  
              generate.text
          =generateCheckCode();  
             }  
               
             
          //登錄驗(yàn)證
             private function loginHandler():void{  
                
          if(user.text==""||pass.text==""){  
                 Alert.okLabel
          ="確定";
                 Alert.show(
          "用戶名 或 密碼 為空","提示");  
                }
          else{  
                 
          if(user.text=="jianbao"&&pass.text=="jianbao"  
                    
          &&identify.text.toLowerCase()==generate.text.toLowerCase()){  
                      Alert.okLabel
          ="確定";   
                         Alert.show(
          "登錄成功","提示");  
                      currentState
          ="hollow";  
                    
                 }
          else{  
                      
          if(identify.text.toLowerCase()!=generate.text.toLowerCase()){  
                        Alert.okLabel
          ="確定";  
                        Alert.show(
          "驗(yàn)證碼輸入錯(cuò)誤","提示");  
                        generate.text
          =generateCheckCode();  
                      }
          else
                      Alert.okLabel
          ="確定";       
                      Alert.show(
          "用戶名 或 密碼 錯(cuò)誤","提示");  
                      }  
                 }  
                }  
             }  
               
               
             
          //清除
             private function clearHandler():void{  
              user.text
          =pass.text="";  
             }  
               
             
          //產(chǎn)生驗(yàn)證嗎
               
             private 
          function generateCheckCode():String{  
              
          //init  
              var num:Number;  
              
          var code:String;  
              
          var checkCode:String="";  
                
              
          for(var i:int=0;i<5;i++){  
               num
          =Math.round(Math.random()*100000);  
               
          if(num%2==0){  
                code
          =String.fromCharCode(48+(num%10));  
               }
          else{  
                code
          =String.fromCharCode(65+(num%26));  
               }  
               checkCode 
          +=code;  
              }  
              
          return checkCode;  
             }  
            ]]
          >  
           
          </mx:Script>  
                          
           
          <mx:Panel id="panel" x="143" y="115" width="350" height="229" layout="absolute" title="login">  
              
            
          <mx:Button id="btnLogin" x="73" y="141" label="登錄" click="loginHandler()"/>  
            <mx:Button id="btnClear" x="167" y="141" label="清除" click="clearHandler()"/>  
               
            
          <mx:Label x="41" y="31" text="用戶名"/>  
            <mx:Label x="44" y="64" text="密  碼"/>  
               
            
          <mx:TextInput id="user" x="81" y="31"/>  
            <mx:TextInput id="pass" x="81" y="62" displayAsPassword="true"/>  
            <mx:Text x="40" y="100" text="驗(yàn)證碼"/>  
            <mx:TextInput x="81" y="98" width="68" id="identify"/>  
            <mx:Label x="156" y="100" width="48" id="generate"/>  
            <mx:Label x="209" y="100" text="看不清楚 換個(gè)~~" click="generate.text=generateCheckCode()" />  
               
           
          </mx:Panel>  
              
             
          <mx:states>  
              
          <mx:State name="hollow">  
               
          <mx:RemoveChild target="{panel}"/>  
               <mx:AddChild position="lastChild">  
                
          <mx:Label text="hollow marshane" x="0" y="200" fontSize="200" color="red"/>  
               </mx:AddChild>  
              </mx:State>  
             </mx:states>  
              
          </mx:Application>  


          效果圖:

          posted @ 2011-06-05 13:19 天空布藍(lán) 閱讀(1142) | 評(píng)論 (0)編輯 收藏

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          Flex學(xué)習(xí)鏈接

          搜索

          •  

          最新評(píng)論

          • 1.?re: tomcat7的配置
          • 新建變量名: TOMCAT_HOME 應(yīng)該為CATALINA_HOME
          • --houkai
          • 2.?re: tomcat7的配置
          • 確實(shí)是的@寒澈
          • --houkai
          • 3.?re: tomcat7的配置
          • @ftp123
            你娘里個(gè)大雪碧 里面會(huì)有common這個(gè)文件夾嗎 不知道還尼瑪在這瞎比比 純尼瑪誤導(dǎo)人 我最惡心的就是這樣沒(méi)事裝逼的人 艸
          • --cao
          • 4.?re: tomcat7的配置
          • 從哪抄來(lái)的,是抄的,你也說(shuō)聲啊,要不自己測(cè)試下也可以,害人測(cè)試半天。
          • --ftp123
          • 5.?re: tomcat7的配置
          • %TOMCAT_HOME%\common\lib 從tomcat6.0開(kāi)始已經(jīng)沒(méi)有common文件夾了,直接用\lib,害我找了半天common文件夾啊,趕快改過(guò)來(lái)吧
          • --寒澈

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 永济市| 绩溪县| 天镇县| 增城市| 栖霞市| 务川| 昆山市| 古蔺县| 梅河口市| 张掖市| 乐清市| 依安县| 巢湖市| 庄河市| 安溪县| 大同市| 英吉沙县| 阜城县| 社会| 万源市| 东平县| 云和县| 元阳县| 清丰县| 太保市| 淮阳县| 邮箱| 潮安县| 桓仁| 九江县| 柳州市| 灵武市| 灌云县| 珠海市| 色达县| 涿鹿县| 睢宁县| 铁力市| 诸暨市| 青州市| 嫩江县|