云下的天空

          堅持 隨心而動 走自己的路

           

          2011年6月5日

          訪問控制符

          1.訪問修飾符(access modifier)

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

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

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

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

          posted @ 2011-07-02 23:38 天空布藍 閱讀(370) | 評論 (0)編輯 收藏

          ORACLE TRUNC()函數



          oracle trunc()函數的用法

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

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

          {


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

          通俗的說吧,format為年時,精確到-----年

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


          }

          posted @ 2011-06-30 21:34 天空布藍 閱讀(334) | 評論 (0)編輯 收藏

          Oracle字符串連接的方法

          和其他數據庫系統類似,Oracle字符串連接使用“||”進行字符串拼接,其使用方式和MSSQLServer中的加號“+”一樣。

          比如執行下面的SQL語句:

          SELECT '工號為'||FNumber||'的員工姓名為'||FName FROM T_Employee
          WHERE FName IS NOT NULL

          除了“||”,Oracle還支持使用CONCAT()函數進行字符串拼接,比如執行下面的SQL語句:
          SELECT CONCAT('工號:',FNumber) FROM T_Employee

          如果CONCAT中連接的值不是字符串,Oracle會嘗試將其轉換為字符串,比如執行下面的SQL語句:

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

          與MYSQL的CONCAT()函數不同,Oracle的CONCAT()函數只支持兩個參數,不支持兩個以上字符串的拼接,比如下面的SQL語句在Oracle中是錯誤的:
          SELECT CONCAT('工號為',FNumber,'的員工姓名為',FName) FROM T_Employee
          WHERE FName IS NOT NULL
          運行以后Oracle會報出下面的錯誤信息:
          參數個數無效

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

          posted @ 2011-06-27 21:10 天空布藍 閱讀(47993) | 評論 (0)編輯 收藏

          (轉) java環境變量配置

            

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

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

                3.選擇“高級”選項卡,點擊“環境變量”;

                4.在“系統變量”中,設置3項屬性,JAVA_HOME,PATH,CLASSPATH(大小寫無所謂),若已存在則點擊“編輯”,不存在則點擊“新建”;

                5.JAVA_HOME指明JDK安裝路徑,就是剛才安裝時所選擇的路徑D:\java\jdk1.5.0_08,此路徑下包括lib,bin,jre等文件夾(此變量最好設置,因為以后運行tomcat,eclipse等都需要依*此變量);
               

                 Path使得系統可以在任何路徑下識別java命令,設為:

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

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

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

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

                 6.“開始”->;“運行”,鍵入“cmd”;

                 7.鍵入命令“java -version”,“java”,“javac”幾個命令,出現畫面,說明環境變量配置成功;

                 8.好了,打完收工。下面開始你的第一個java程序吧。

          下面講講java幾個環境變量的含義和linux下的配置方法:

          通常,我們需要設置三個環境變量:JAVA_HOME、PATH 和 CLASSPATH。

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

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

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

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

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

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

          ***** 在 Windows 下設置

          Windows 下使用 set 命令設置環境變量,為了使每一次啟動計算機都設置這些環境變量,應該在系統盤根目錄下的 autoexec.bat 文件中進行設置,如:

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

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

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

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

          假設在 C:\java 目錄下有可運行的類 HelloJava.class,那么

          C:\> set CLASSPATH=C:\jdk\jre\lib\rt.jar;. // 設置 CLASSPATH 環境變量,注意最后有一個 “.”
          C:\> cd java // 轉到 C:\java 目錄
          C:\java> java HelloJava // 運行 HelloJava
          Hello, Java. // 運行結果
          C:\java> _

          **** 在 Linux 下設置

          Linux 下使用“變量名=變量值”設置變量,并使用 export 命令將其導出為環境變量。為了使每一次登錄都自動設置好這些變量,你需要在 ~/.bash_profile 里或者 ~./bashrc 里進行設置,如

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

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

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

          假設在 /home/fancy/java 目錄下有可運行的類 HelloJava.class,那么

          [fancy@matrix fancy]$ export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. // 設置 CLASSPATH,注意最后的“.”
          [fancy@matrix fancy]$ cd ~/java // 轉到 /home/fancy/java
          [fancy@matrix java]$ pwd // 顯示當前目錄
          /home/fancy/java // 當前目錄是 /home/fancy/java
          [fancy@matrix java]$ java HelloJava // 運行 HelloJava
          Hello, Java // 運行結果
          [fancy@matrix java]$ _

          ***** 實例分析

          只是操作系統不同,略有差別。

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

          posted @ 2011-06-24 23:15 天空布藍 閱讀(336) | 評論 (0)編輯 收藏

          (轉載)冒泡事件理解3

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

          posted @ 2011-06-05 22:29 天空布藍 閱讀(784) | 評論 (0)編輯 收藏

          (轉載)冒泡事件理解2

          1.

          項目 右鍵 新建 包

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

          代碼如下(代碼1)

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

                  //該事件所攜帶的數據
                  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 = "內部按鈕";
                              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是傳播路徑上的當前捕捉者
                      }
                      private function panelCatchEvent(par_event:btnEvent1):void{
                          label1.text += par_event.currentTarget.id+par_event.EventData;
                      }
                  ]]>
              </fx:Script>

              <fx:Declarations>
                  <!-- 將非可視元素(例如服務、值對象)放在此處 -->
              </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="內部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="事件來自~~~~" width="189"/>

          </s:Application>

          3.

          運行程序

          點擊“內部BTN:

          結果如圖所示

          image

          大家可以看到
          事件是從外層容器到內層容器依次執行的

           

          4.

          刷新頁面

          點擊“外部BTN”

          結果如圖所示

          image

          因為事件的引發者沒有在panl1中所以不會再觸發panel1的事件了

           

          以上說的都是非冒泡事件,事件的執行順序是從外層容器到內層容器執行的

           

          5.

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

          創建事件的代碼為

          var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一個參數bubbles應為true

          事件監聽的代碼應如下

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

          這樣設置后就是冒泡事件,事件的執行順序是從內層容器到外層容器執行的

           

          6.

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

          那么

          創建事件的代碼為

          var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一個參數bubbles應為true

          同時,監聽事件的代碼還要設置兩次

          this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,true);//非冒泡監聽
          this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//冒泡監聽

          這樣設置之后,事件先從外部執行到內部,在從內部執行到外部 

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



          posted @ 2011-06-05 18:08 天空布藍 閱讀(418) | 評論 (0)編輯 收藏

          (轉載)冒泡事件理解

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

          發生事件時,該事件在事件流的三個階段中移動:
          捕獲階段,該階段從顯示列表層次結構的頂部流動到目標節點之前的節點;
          目標階段,該階段只包括目標節點;
          冒泡階段,該階段從目標節點的后續節點沿顯示列表層次結構向上往回流動。
          EventDispatcher 類實現 IEventDispatcher 接口,并且是 DisplayObject 類的基類。 EventDispatcher 類允許顯示列表上的任何對象都是一個事件目標,同樣允許使用 IEventDispatcher 接口的方法。 
          事件目標是 Flash ® Player 事件模型的重要組成部分。 

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

          posted @ 2011-06-05 18:04 天空布藍 閱讀(537) | 評論 (0)編輯 收藏

          (轉載) flex4 css語法

            

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

          詳細說明:

          首先讓我們新建一個application。如下。包含兩個按鈕(一個Halo按鈕和一個Spark按鈕)和一個包含在容器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里面需要導入相應的命名空間,如:

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

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

          定制全局樣式

          mx|Button

          {

          color:#ffffff;

          }

          s|Button

          {

          color:#000000;

          }

          當然也可在組件的屬性里面指定樣式類,然后在css中聲明相應的樣式類

          .myStyleClass

             {

             color:#ff0000;

             }

          組件ID設置相應的組件樣式

          #haloButton

             {

             base-color:#0000ff;

             }

          #sparkButton

             {

             base-color:#ffffff;

             }

          類里面的組件ID來定義樣式

          s|VGroup#myBox mx|ProgressBar

             {

             color:#ff0000;

             }

          通過狀態定義樣式

          s|Button:down

             {

             color:#33CC33;

             }

          總結:

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

          posted @ 2011-06-05 15:56 天空布藍 閱讀(2422) | 評論 (0)編輯 收藏

          (轉載)兩個.mxml文件之間鏈接的簡單方法

          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"/><!--第一個頁面(test1.mxml文件)-->
                          <n1:test id="test_2"/><!--第二個頁面(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="跳轉到test2.mxml" click="test1()"/>
          </mx:Canvas>

          =====要從test2.mxml返回到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_1;
                                  }
                          ]]>
                  </mx:Script>
                  <mx:Button label="跳轉到test2.mxml" click="test1()"/>
          </mx:Canvas>

          這樣就可以實現簡單的頁面調整,類似于頁面的超鏈接
           
          原文鏈接:http://blog.csdn.net/sws9999/archive/2011/03/11/6238897.aspx


          posted @ 2011-06-05 15:49 天空布藍 閱讀(920) | 評論 (0)編輯 收藏

          (轉載)flex制作一個用戶登錄框(含驗證碼)

               原文地址: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();  
             }  
               
             
          //登錄驗證
             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(
          "驗證碼輸入錯誤","提示");  
                        generate.text
          =generateCheckCode();  
                      }
          else
                      Alert.okLabel
          ="確定";       
                      Alert.show(
          "用戶名 或 密碼 錯誤","提示");  
                      }  
                 }  
                }  
             }  
               
               
             
          //清除
             private function clearHandler():void{  
              user.text
          =pass.text="";  
             }  
               
             
          //產生驗證嗎
               
             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="驗證碼"/>  
            <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="看不清楚 換個~~" 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 天空布藍 閱讀(1140) | 評論 (0)編輯 收藏

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          Flex學習鏈接

          搜索

          •  

          最新評論

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

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 景德镇市| 镶黄旗| 农安县| 句容市| 麟游县| 陈巴尔虎旗| 泰来县| 延长县| 鲁山县| 金堂县| 噶尔县| 竹溪县| 富阳市| 花莲市| 牙克石市| 台州市| 垣曲县| 古丈县| 闸北区| 两当县| 上栗县| 镇坪县| 左权县| 泰安市| 永寿县| 定州市| 双鸭山市| 宜宾县| 观塘区| 无极县| 阜阳市| 边坝县| 绥阳县| 陇川县| 蓬溪县| 通山县| 虹口区| 女性| 陇南市| 泸溪县| 永修县|