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

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

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

    云下的天空

    堅持 隨心而動 走自己的路

     

    2011年7月2日

    訪問控制符

    1.訪問修飾符(access modifier)

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

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

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

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

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

    2011年6月30日

    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 天空布藍 閱讀(333) | 評論 (0)編輯 收藏

    2011年6月27日

    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 天空布藍 閱讀(47990) | 評論 (0)編輯 收藏

    2011年6月24日

    (轉) 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 天空布藍 閱讀(335) | 評論 (0)編輯 收藏

    2011年6月5日

    (轉載)冒泡事件理解3

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

    posted @ 2011-06-05 22:29 天空布藍 閱讀(783) | 評論 (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 天空布藍 閱讀(536) | 評論 (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 天空布藍 閱讀(2421) | 評論 (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 天空布藍 閱讀(918) | 評論 (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 天空布藍 閱讀(1139) | 評論 (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文件夾啊,趕快改過來吧
    • --寒澈

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲日产无码中文字幕| 四虎免费影院4hu永久免费| 曰韩亚洲av人人夜夜澡人人爽 | 国产精品亚洲综合五月天| 久9这里精品免费视频| 国产亚洲美女精品久久久久狼| yellow免费网站| 国产亚洲色视频在线| 黄色视屏在线免费播放| 亚洲熟妇av一区二区三区| 中文字幕无码免费久久| 久久精品国产亚洲AV嫖农村妇女| 日韩人妻一区二区三区免费| 亚洲蜜芽在线精品一区| 999在线视频精品免费播放观看| 亚洲一区二区三区免费在线观看| 成人A级毛片免费观看AV网站| 亚洲精品无码中文久久字幕| 国产片免费福利片永久| 春意影院午夜爽爽爽免费| 亚洲亚洲人成综合网络| 久9这里精品免费视频| 亚洲综合色区中文字幕| 免费观看日本污污ww网站一区| a级毛片免费高清视频| 亚洲视频在线一区| 四虎永久在线精品免费观看视频| 亚洲人成网站色在线观看| 国产区卡一卡二卡三乱码免费| ww在线观视频免费观看w| 亚洲AV日韩AV天堂久久| 成人午夜大片免费7777| caoporm超免费公开视频| 亚洲av激情无码专区在线播放| 久草在视频免费福利| 一级视频免费观看| 亚洲网站在线免费观看| 国产大片线上免费看| 日韩插啊免费视频在线观看| 亚洲熟妇久久精品| 久久亚洲综合色一区二区三区|