(1)看flex_help文档之非可视化组件

非可视化组件都放在<fx:declarations/>

(1)三种RPC组件分别是webserivce,httpSerivce,RemoteObject

(2)validator

(3)formatter

(4)css

(5)skins

(6)effect:指短时间内改变组件的动作,比如resize,fading,moving a component

设置组件的属性有两种方式:

(1)直接设置组件的attributes

(2)设置组件的子节点

在给组件设置属性时碰到Array类型的属性:可以加或不加<fx:Array>标签,但只有一个例外,就是指数组包含一个元素。(i)当选择加时表示包含一个元素的数组;(ii)当不加时表示该属性的值就为该元素值.

object=[element]
object=element

Vector:一种类型相同的数组,初始化时要标明它的元素的数据类型

(1)元素类型为String:

<fx:Vector type="String">
<fx:String>one</fx:String>
<fx:String>two</fx:String>
<fx:String>three</fx:String>
</fx:Vector>
(2)元素的类型为Vector<String>
<fx:Vector type="Vector.&lt;String&gt;">
<fx:Vector type="String">
<fx:String>one</fx:String>
<fx:String>two</fx:String>
<fx:String>three</fx:String>
</fx:Vector>
</fx:Vector>

&it,&gt为HTML的转移字符分别代表为'<','>'。

在组件里有XML类型的属性时:在初始化该属性时应该给出namespace

<mynamespace:MyComponent>
<mynamespace:value xmlns:a="http://www.example.com/myschema">
<fx:XML>
<a:purchaseorder>
<a:billingaddress>
...
</a:billingaddress>
...
</a:purchaseorder>
</fx:XML>
</mynamespace:value>
</mynamespace:MyComponent>

使用As

当要生成编译以后的源码是可以加 keep-generated-actionscript=true选项

一般是使用id来引用组件的实例,当你只知道组件id的String名而要引用该组件是可以使用this[idName]来引用该组件。

FlexGlobals.topLevelApplication:根应用程序。

parentDocument:

parentApplication:

引用外部的代码可以使用两种方式:include和import

include:表示引用的代码所以当前MXML组件的一部分;

import:要new 一个实例来使用其中的代码。

动态查看一个实例的属性和方法

(1)使用for..in loops:引用变量只是Object类型,使用该语法能获取动态添加的属性和值

public function dumpObj():void {
for (var p:String in obj) {
ta1.text += p + ":" + obj[p] + "\n";
}
}
也可以使用mx.utils.ObjectUtil.toString()来完成同样的效果。

(2)Using the introspection API

describeType(object):返回该实例对应类的共有方法和属性(非动态添加的),返回类型为XML

若要获取类的静态方法和属性 则使用describeType(getDefinitionByName("MyClass"))。

可视化组件的层次结构依次为stage,System Manage,Application和其他组件

event flow 包括三种时间段:the capturing phase,the targeting phase,the bubbling phase

the capturing phase:从根节点到目标节点的父节点,flash player查找该路径下的节点所注册的事件是否符合

若符合,则调用相应的回调函数。

the targeting phase:目标节点,调用注册改事件的回调函数

the bubbing phase:从目标节点到根节点,flash player查找该路径下的节点所注册的事件是否符合

若符合,则调用相应的回调函数。


事件的继承层次:

一般组件都是DisplayObject,DisplayObject继承Eventdispatch,而Eventdispatch则实现了IEventdispatch借口。

addEventListenter(event_type:String,event_listener:Function,use_capture:Boolean,priority:int,weakRef:Boolean)

weakRef:指的是监听器是否是弱引用

移除监听器:在语句块里添加的监听器可以移除,在MXML里添加的监听器不可以删除。

手动添加的监听器函数只能有一个参数为Event类型,而MXML种定义的监听器可以声明任意多的参数。

hasEventListner()和willTrigger()去检查某事件是否有注册监听器

objectInstance.dispatchEvent(event:Event):Boolean

Event(event_type:String, bubbles:Boolean, cancelable:Boolean)

canceable:表示事件是否需要经过事件流     

Capturing:从父节点到子节点

bubbling:从子节点从父节点

一般情况下可视化组件都在bubbling阶段,

event flow在可视化组件里是从最里层的子节点到最外面的节点

event.target和currentTarget属性

event的停止事件传播方法:

stopPropagation():允许当前节点的其他事件监听器执行。

stopImmediatePropagation():不允许当前节点的其他事件监听器执行。


对父节点注册事件而不是对每个子节点注册,会极大地提高程序的维护性和性能。

如果想要你的监听器按照特定的顺序:

(1)在监听器中调用其他监听器

(2)在监听器中dispatch event

keyEvent中的keycode和charcode:

keycode:指的是按下的键的编码的数字值

charcode:指的是按下的键的实际值的编码的数字值

比如按下键1可能为代表数字1或者字'!' ,keycode就代表键1编码的数字值,charcode代表数字1或者'!'的编码的数字值。

MouseEvent有关于KeyEvent的属性:altKey,ctrlKey,shiftKey

SDK的相关配置

在sdk的目录下可以更改jvm及相关编译器mxmlc,compc的配置

sdk_install_dir/
    bin/jvm.config
    bin/mxmlc
    bin/mxmlc.exe
    bin/compc
    bin/compc.exe
    bin/fdb
    bin/fdb.exe
    frameworks/flex-config.xml

wrapper:将swf文件嵌入到html,jsp等网页类型。

若flex 应用程序需要文本访问其他域名(不是运行该应用程序的域名)的服务需要使用crossdomain.xml文件或者代理。















转载于:https://my.oschina.net/u/865921/blog/142929

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值