??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
]]>
一?/span>准备工作Q?/span>
所需要的软gEclipse 3.3 + FlexBuilder3 beta2 插g?/span>+MyEclipse 6.0 +Lcds + Tomcat 5
二?/span>安装q程Q?/span>
1. 安装MyEclipse6.0(在此不再详述)?/span>
2. 安装FlexBuilder3 beta2 插g?/span>(FB3_WWEJ_Plugin.exe)Q请参考下图所C?/span>
Q?/span>1Q双d执行文g
?/span>MyEclipse6.0中部|?/span>FLEX?/span>WEB工程的过E?/span>
1Q?span style="font: 7pt 'Times New Roman'">
建立Flex目Q首先在MyEclipse下打开Flex视图Q右键徏?/span>Flex工程?/span>在其中输入项目名Uͼ点击“Next”按钮?/span>
建立TomCat服务器,如下图所C?/span>
注意一定要选择和你MyEclipse下对应的TomCat版本Q然后点?#8220;Next”按钮Q进入下一个界面,点击“finish”卛_?/span>
3Q?span style="font: 7pt 'Times New Roman'">
回到了第二步的界面,点击“Brower..”按钮Q选择ds-console.warq个文gQ此文g需要安?/span>lcds软gQ?br /> 我们只是要此软g下的q个war文g卛_Q对于此软g的安装,没有Ҏ的地方,正常安装卛_完成Q,各个包的讲解Q?/span>
src:攄?/span>Java的项目包
flex_src:攄?/span>Flex目用的文g
Q实际上q个目是有两个目框架l成的)
5Q?/span>在项目上右键Q向Flex目中加?/span>Web支持Q作用:Z?/span>TomCat可以加蝲此项目,因ؓTomcat只可以加?/span>Web目Q,如下图所C:6Q?span style="font: 7pt 'Times New Roman'">
弹出的对话框后,下面的Create web.xmlq一的对勾去除Q因为项目下面已l存在了web.xml文gQ?br /> 所以去除掉。)Q点?#8220;Finish”按钮卛_?/span>?/span>Flex中完成项目各个文件的部v工作
1Q我们先M看一下项目现在的样子
可以看到其中有一?/span>Flex_J2eeDemo.mxml文gQ它是Flex目的应用程序的入口位置Q?/span>
目的开始都是从q里开始的Q一个项目中只有一个这L文gQ其他均是组件文件?/span>
2Q?/span>Flex目的分层结构,下图是我现在的项目样子:
我们可以看到flex_src文g夹下Q我建立了三个文件夹
ascodeQ用于放ActionScript文g?/span>
cssQ用于放css样式文g?/span>
viewQ用于放目中组件文?/span>(mxml文g)?/span>
Q注意:q三个文件夹很像Java中的包,当然也可以像Java一h照功能模块进行划分,q里面只是分一个大体的层,要根据项目决定。)
3Q?/span>Java目下的分层步骤Q?/span>
和以前的Java目一Pq是?/span>src包中建立自己所需要的包结构?/span>
在此目中,我们是按照模块进行划分的Q然后在每个模块下分出:BizQ?/span>DtoQ?/span>DaoQ?/span>Entity层,?/span>VO层将交给Flex中的View文g夹进行统一理?/span>
The following table describes the valid pattern letters:
Pattern letter
|
Description
|
Y
|
Year. If the number of pattern letters is two, the year is truncated to two digits; otherwise, it appears as four digits. The year can be zero-padded, as the third example shows in the following set of examples:
|
M
|
Month in year. The format depends on the following criteria:
Examples:
|
D
|
Day in month. While a single-letter pattern string for day is valid, you typically use a two-letter pattern string.
Examples:
|
E
|
Day in week. The format depends on the following criteria:
Examples:
|
A
|
am/pm indicator.
|
J
|
Hour in day (0-23).
|
H
|
Hour in day (1-24).
|
K
|
Hour in am/pm (0-11).
|
L
|
Hour in am/pm (1-12).
|
N
|
Minute in hour.
Examples:
|
S
|
Second in minute.
Example:
|
Other text
|
You can add other text into the pattern string to further format the string. You can use punctuation, numbers, and all lowercase letters. You should avoid uppercase letters because they may be interpreted as pattern letters.
Example:
|
q行后画?
Mylabel = new Label();
Mylabel.id = "Mylb";
Mylabel.text = "权限理";
//Alert.show((targetStr.x/2).toString());
Mylabel.x = targetStr.x + (targetStr.width/4);
Mylabel.y = targetStr.y-targetStr.height/2+5;
我们?/font>Eclipse里面的自动功能,是无法出?/font>Mylabel.xq样的属性的。再有一个是Q如果你重新New了一?/font>LabelQ设?/font>Label.text的字体比较麻烦,我们可以直接使用CSS来完?/font>,例如Q?/font>
<mx:Style>
Label{
fontSize: 14;
}
</mx:Style>
也可以这?/font>
<mx:Style>
Label.id{
fontSize: 14;
}
</mx:Style>
最后一个问题,是LinkButton里面的添加图片了Q代码如下:icon="@Embed(source='image/Button1.gif')"?/font>
AS |
JAVA |
Array (dense) |
java.util.List |
Array (sparse) |
java.util.Map |
flash.utils.ByteArray |
byte [] |
flash.utils.IExternalizable |
java.io.Externalizable |
Date |
java.util.Date |
int/uint |
java.lang.Integer |
null |
null |
Number |
java.lang.Double |
String |
java.lang.String |
XML |
org.w |
XMLDocument |
org.w |
Java |
AS |
java.lang.String |
String |
java.lang.Boolean, boolean |
Boolean |
java.lang.Integer |
int |
java.lang.Short |
int |
java.lang.Byte |
int |
java.lang.Byte[] |
flash.utils.ByteArray |
java.lang.Double |
Number |
java.lang.Long |
Number |
java.lang.Float |
Number |
java.lang.Character |
String |
java.lang.Character[] |
String |
java.util.Calendar |
Date |
java.util.Date |
Date |
java.util.Collection |
mx.collection.ArrayCollection |
java.lang.Object[] |
Array |
java.util.Map |
Array (sparse) |
java.util.Dictionary |
Object (untyped) |
org.w |
XML object |
那么q个非常重要的东西,该如何去应用呢?在这之前Q我们要清楚一个事情,那就是Event是Objectq个伟大父亲?20多个孩子之一Q也是_它是直接l承于Object的。可是我们知道这有什么用处呢Q嘿~,用处大啦Q因代表了Event的贵族气质,卻I在Event中,U别高的控g触发的事Ӟ在别低的控件中是无法被监听到的Q怎么P够高傲了吧?br /> Cq里Q有Z_q有Ҏ了吧Q只从这个就能看点吗Q答案当然不是啦Q原理听生一一道来?/p>
在flex中,事g分成了两c,一个是pȝ事gQ一个自定义事g。系l事件是包含鼠标点击Q焦点获得等{。自定义Q顾名思义Q是自己定义的事件啦Q但是要注意Q自定义的事件必要l承于Eventq个c,否则Qlistener是不会搭理你_。那么自定义事g该如何定义呢Q下面有一个例子,会对你有帮助?/p>
够简单了吧,当然Q这只是一个不包含M其它处理的自定义事g。现在有人可能会问了Q自定义Ҏ中的参数有啥用,都是q哈的啊Q嘿Q暂时保密?/p>
有了自定义事Ӟ那么我们的下一个问题就来啦Q自定义事g有了Q那么该如何触发Q又如何监听呢,别着急啦~~Q下面就说?br /> 在flex中,我们自定义触发事件用的是dispatchEventQEventQ,里面存放的就是我们上面提到的自定义Event事g~。系l定义的触发事g,例如Q?lt;mx:Button id="testMs" x="71" y="295" label="Button" click = “”/>鼠标点击的事件等{?br /> 那么监听的方法呢Q监听是q样来定义的?/p>
怕了吧,是不是参数很多,和我们^时用的有点不太一P我们qxQ一般都是这L?br />
后面多出的参数是什么意思呢Q要x楚知道这些,我们必须要先说明一下flex中事件处理的程?br />
在Flex中,触发事g后,程分ؓ三部分,例如Q我们有下面q个
假设Q在<mx:VBox>中触发一个事件。事件的触发序是这LQ先捕捉Q然后目标,最后上?br />
捕捉:在我们刚才的假设中,首先触发器会?lt;mx:Panel>-><mx:HBox>-><mx:VBox>q个序来检查每个节?q个阶段,我们UCؓ捕捉阶段,在addEventListener的构造函CQ我们默认是不监听这个阶D늚?br />
目标Q顾名思义Q就?lt;mx:VBox>q个触发事g的节炏V?br />
上QQ?lt;mx:VBox>-><mx:HBox>-><mx:Panel>是按照这个顺来检查每个节Ҏ否注册了监听?br />
了解了Flex中事件的处理程Q那么我们可以解释addEventListener三个参数的意义啦?br />
useCapture:Boolean=falseQ表C的Q这个监听是能在目标阶段和上阶D进行监?br />
useCapture:Boolean=trueQ表C的是这个监听只能在捕捉阶段q行监听?/p>
priority:Integer=0, 优先U,监听是有优先U的Q那么通过q个字段Q我们可以轻杄改变监听的优先Q是不是很方便,默认的时候ؓ0Q?/p>
useWeakReference:Boolean=false // 是否讑֮为弱引用 q个参数的意思是Q在该监听不使用的时候,是否允许垃圾回收器,该监听回收。这个很重要Q因为addEventListener有点cM千年老龟Q生命周期比较长Q如果没有被回收掉,会一直占着pȝ资源的?/p>
最后有一点,要非常注意,在UI的监听执行完毕后Q一定要该监听U除removeEventListenerQ否则,即UI被移除掉Q监听也不会被销毁。这个比较重要,因ؓ一些看h比较诡异的错误,大部分是因ؓq个D的?/p>
现在来解惑先前的埋伏下的悬念Q?br /> MyEvent (type:String, bubbles:Boolean = false, cancelable:Boolean = false)
bubbles:Boolean = falseQ这个事件是否参与上阶D?/p>
cancelable:Boolean = false // 定是否可以取消 Event 对象
所以,在application中,触发的事Ӟ它的底层Q是无法监听到的Q收W回Ӟ