1.as3中的HTTPService, url并不是要写成相对路径。
例如文件路径如下:
src/myExample.mxml
src/data/list.xml
src为源代码文件夹,myExample.mxml中的HTTPService要调用list.xml。
url只要写成 url="data/list.xml",不要写成url="../data/list.xml"
2.如何理解flex中的相对定位和绝对定位?
可以从“是否只根据父级对象就可以确定其大小和位置”这个原则来判断。
例如“x=0,y=0”和“width=100%,height=100%”,“top=10,left=10”都是绝对定位,因为其都只根据父级对象就可以确定其大小和位置。
而放在一个vgroup容器中的控件,就是相对定位。因为其位置还要根据vgroup中的其他控件来判断。
3.关于事件的一点小体会
Event | () | 构造函数 |
public function Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9, Flash Lite 4 |
创建一个作为参数传递给事件侦听器的 Event 对象。
参数type:String — 事件的类型,可以作为 Event.type 访问。 | |
bubbles:Boolean (default = false ) — 确定 Event 对象是否参与事件流的冒泡阶段。默认值为 false 。 | |
cancelable:Boolean (default = false ) — 确定是否可以取消 Event 对象。默认值为 false 。 |
addEventListener | () | 方法 |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
参数
type:String — 事件的类型。 | |
listener:Function — 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
function(evt:Event):void 函数可以有任何名称。 | |
useCapture:Boolean (default = false ) — 确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。如果将 useCapture 设置为 true ,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture 为false ,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true ,一次将 useCapture 设置为 false 。 | |
priority:int (default = 0 ) — 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。 | |
useWeakReference:Boolean (default = false ) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。 类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将
要注意的是,2个函数中都有参数来表示事件是否参与冒泡阶段,并且2个函数的参数默认值正好相反,所以如果2个函数都使用默认值的话,事件就会捕捉不到。 |
4.toolstips tips的布局可参考vbox
5.对pureMVC的研究体会
proxy相当于整张数据库表;
vo相当于数据库表中的一行;
enum中则表明中某列所能取得的值的范围。
6.flex中键值对的查找方式应该是类似于hashmap的方式,因为在制作语言包的过程中发现其效率还可以。语言包应该直接利用键值对来实现。利用URLVariables将载入的数据直接转换成键值对,然后直接根据键来取值,速度还不错。
7.tooltips利用flex新的文本引擎来做,textflow什么的,tour de flex 上有示例。
8.利用mouseEnabled 和 mouseChildren的配合使用来抓到mouseEvent的target
9.listBase和itemRender 似乎利用了对象池的概念,也就是当dataProvider发生改变时,每个itemRender并不是完全重新创建,而是重复利用,所以在重写set data方法时,要全部重新设置属性,而不是想当然的只改一部分,因为没改的那部分有可能是用的以前的itemRender.
12.使用textFlow时,想实现类似魔兽世界tip的效果,一行中的2个信息分别左右对齐,有2种做法,但这2种做法都不够好。
一种是:<p textAlign='justify' textAlignLast='justify'><span>左</span> <span>右</span></p>,注意2个span标签之间要有空格。
另一种是:<p textAlign='justify'><span>左</span> <span>右</span></br></p>,2个span标签之间要有空格,并且末尾的</br>不能省略。
2种方法都不能将容器的换行方式设置为严格换行。
在textflow布局比较复杂时,可以用tour de flex 中的textLayoutFramework组件先尝试布局,然后查看其对应的标签写法。