学习笔记

来源:互联网 发布:大乐透彩神通软件17072 编辑:程序博客网 时间:2024/05/25 18:10

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) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。

类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 useWeakReference 设置为 true 而不会使它们受垃圾回收的影响。如果对作为嵌套内部函数的侦听器将 useWeakReference 设置为 true,则该函数将作为垃圾回收并且不再是永久函数。如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持永久。

 

要注意的是,2个函数中都有参数来表示事件是否参与冒泡阶段,并且2个函数的参数默认值正好相反,所以如果2个函数都使用默认值的话,事件就会捕捉不到。

 

4.toolstipstips的布局可参考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.

 

10.Flex中label换行
在as中赋值 label.text="aaaaa /r/n bbbbbbb"
在mxml中赋值 text="aaaaaa 
 bbbbbbb"
11.汉字字体加粗需要设置下fontFamily才能起效,默认字体只对数字和字母起效。例如:
.gameLabelStyle1
{
color: #dcb58c; 
fontSize: 12px; 
fontFamily: "宋体";
fontWeight: bold;
}

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组件先尝试布局,然后查看其对应的标签写法。

 

原创粉丝点击