云下的天空

坚持 随心而动 走自己的路

 

2011年7月2日

访问控制符

1.访问修饰符(access modifier)

①public(公共的):被public所修饰属性和方法可以被所有类访问.

②protected(受保护的):被protected所修饰的属性和方法可以在类的内部,相同包以及该类的子类所访问(可以被子类所继承下来).

③private(私有的):被private所修饰的属性和方法只能在该类内部使用.

④默认的(不加任何访问修饰符):在类内部可以访问,以及相同包下面的类使用.

posted @ 2011-07-02 23:38 天空布蓝 阅读(359) | 评论 (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 天空布蓝 阅读(324) | 评论 (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 天空布蓝 阅读(47977) | 评论 (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 天空布蓝 阅读(325) | 评论 (0)编辑 收藏

2011年6月5日

(转载)冒泡事件理解3

     摘要:    我花了一天的时间总算理解了冒泡事件  这篇文章给了我很大的帮助  原文链接:http://enboga.iteye.com/blog/2147808.2 事件机制的工作流程 8.2.1 关于事件流 目标对象:派发事件的对象当事件发生后生成一个携带数据的对象,然后检查目标对象是否存在显示层中,并遍历从根容器一直到目标对象所在位置的所有...  阅读全文

posted @ 2011-06-05 22:29 天空布蓝 阅读(770) | 评论 (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 天空布蓝 阅读(405) | 评论 (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 天空布蓝 阅读(526) | 评论 (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 天空布蓝 阅读(2408) | 评论 (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 天空布蓝 阅读(908) | 评论 (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 天空布蓝 阅读(1127) | 评论 (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文件夹啊,赶快改过来吧
  • --寒澈

阅读排行榜

评论排行榜