flex 学习注意事项

总结的挺好的,对学习flex很有帮助!

1、自定义控件加载。

flex3中自定义控件,加载时直接定义xmlnx:**即可使用。在flex4中,自定义控件,需要加在<fx:Declarations>中,如:

<fx:Declarations>
      <c:MainController id="controler" />
</fx:Declarations>

 

2、Application的监听或派发事件。

flex3中可以直接用Application.application.addEventListener,在flex中,不能再用此方法,要改为:

FlexGlobals.topLevelApplication.addEventListener(event,func);


3、Application常用的事件

initialize=============>初始化

createcomplate==========>元素加载完

initialize发生在createcomplate之前。

 

4、数据请求说明

HTTPService==========>http数据请求。

SOAP(Simple Object Access Protocal)=======> webService

AMF(Adobe Action Message Format)========>Remote Object

 


5、Httpservice result格式

object
xml
flashvars
text
e4x
array

 

6、HTTPService的错误返回值说明

faultDetail错误细节,faultCode错误代码,faultString错误文字描述。

message是以上三个属性的集合。

 

7、自定义组件中的数据不要直接引用父容器的变量 ,而是要在父容器中给自定义组件设置属性。如:

父容器的一个变量是能过httpservice取得的,暂且叫 goodList,

在自定义组件中要声明一个public的变量,然后绑定到组件中的某个控件上。

public var dataList:ArrrayCollection

<mx:datagrid dataprovider="dataList"/>

 

在父容器中引用时: <comp:mycomp dataList="goodList"/>

 

8、利用标签的形式创建自定义事件

 1、首先在<metadata>标签中声名事件,如:

 <mx:MetaData>
     (Event(name="clickevent", type="flash.event.Event"))
 </mx:MetaData>

 2、派发事件。

 3、直接在mx标签中做为属性监听此事件,如:

 <mx:datagrid clickevent="clickHandler(event)">

 4、要在自定义事件中传递参数,需要重写clone方法,如:

 >> 构造函数定义事件方法

 clickevent(type:string,param1:string)

 >> 重写clone方法

 override public function clone():Event{

    return new clickevent(type,param1);

 }

 

9、渲染(ItemRenderer)

 1、内联渲染的写法

<mx:datagrid>
<mx:itemrenderer>
<mx:Component>
<mx:Image/>  //这里是要渲染的元素

</mx:Component>

</mx:itemrenderer>

</mx:datagrid>

 2、对于独立的渲染类,要更新数据,可以重写data方法,如:

override public function set data(value:object)

可以用于字段为空时,显示的内容等

 


10、检测图片是否存在的方法

用UrlLoader,监听Compleate(图片存在)的IOError(图片不存在)事件,不存在时可以用默认图片代替

 

11、FB常用技巧

ctrl+shift+c 注释MXML代码段,及as代码段
ctrl+shift+p 跳转到大扩号的另一端
调整某行(或多行)的位置,可以用alt+上下箭头

 

12、容器

viewstack 属性 resizeToContent="true" 自动调节大小适应内容
引用id选中:content.selectedChild = id(id不要用引号)

显示最后一个标签页内容
content.selectedIndex = numChildren - 1

ButtonBar(LinkBar、TabBar)与viewstack配合使用,viewstack中有几个子元素,buttonbar将自动创建几个按钮。
<mx:ButtonBar dataprovider="{viewstack}"/>
将viewstack的每个子容器设置label属性,buttonbar会自动找label属性的值做为按钮的显示。

如果想显示图标,设置子容器的icon属性,如:icon="@Embed('assets/list.png')"

TabNavigator结合了TabBar与viewStack的功能,TabNavigator中直接包含子容器。

 

13、嵌入图像

(包括swf svg png jpg gif)

方法一:
<mx:Images source="@Embed('assets/globe.swf')"/> or
<mx:Images source="@Embed(source='assets/globe.swf')"/>
嵌入的swf可以是一段动画
可以嵌入按钮(Button)、影片剪辑(MovieClip)元件,不能嵌入图片(Graphic)元件

嵌入flash中设计的多个元件,
为flash中的元件导出,并设置class值(texticon)
在嵌入时<mx:Images source="@Embed(source='assets/globe.swf', symbol='texticon')"/> or
<mx:Images source="@Embed('assets/globe.swf#texticon')"/>

方法二:
mx:script中定义[Embed()]元数据

[Embed(source='assets/globe.swf')]
[Bindable]
private var TextIcon:Class;
<mx:Image source="{TextIcon}"/>

or

[Embed(source='assets/globe.swf')]
private var TextIcon:Class;

[Bindable]
private var icon1:MovieClipAsset = new TextIcon();
[Bindable]
private var icon2:MovieClipAsset = new TextIcon();
<mx:Image source="{icon1}"/>
<mx:Image source="{icon2}"/>

 

14、嵌入字体

 1、检测已使用的是嵌入字体或设备字体
设置控件的rotation="45",如果仍然显示,说明是嵌入字体,否则是设备字体。
[Embed(source="c:/Windows/Fonts/Justus-Roman.ttf", mimeType="application/x-font" fontName="fontJustus", fontWeight="bold")]
private var font1:Class;

<mx:label fontFamily="fontJustus"/>

 2、利用css定义
<mx:Style>
    .logofont{
        fontFamily:fontJustus
    }
</mx:Style>

 3、可以利用字体名赋予systemFont属性,查看字体名的方法:在windows目录下找到字体,右键--属性,名字选项卡,其中有字体名称显示。
如:
[Embed(systemFont="Justus", mimeType="application/x-font" fontName="fontJustus", fontWeight="bold")]

 4、用@font-face嵌入字体,如:
<mx:Style>
@font-face{
src:url("c:/windows/Fonts/Justus.ttf")
fontFamily:"fontJustusRomain"
unicodeRange:"U+0061-U+007A"    //用unicode编码圈定字体范围
}
</mx:Style>
or

<mx:Style>
@font-face{
src:local("Justus")
fontFamily:"fontJustusRomain"
}
</mx:Style>


 5、利用flash cs3嵌入字体
在flash cs3中创建一个文本(动态文本),选择希望用于的字体,单击Embed按钮,可以直接输入字符(如:company,此时company这个单词将被嵌入),发布swf
在css中font-size的src直接引用导出的swf,此时的fontFamily要与在falsh中下拉框中选择的字体同名。

 

15、css

global{}  //设置全局

css样式提示(alt+>)

button的icon(upIcon、downIcon)可以是一个swf,用embed绑定元件,

skin(upSkin、downSkin)也可以是一个swf,skin会被拉伸至整个按钮的大小

16、

flash cs中定义元件,转换为组件后,在flex中引用,可以直接将button的icon值指向元件名,如:
icon="listbutton"

17、安全沙箱,允许访问本地文件

在编译器自变量中加入    --use-network=false

flex 安全沙箱设置

1 、

编绎参数
-use-network=false(本地文件访问域)
-use-network=triue(本地网络访问域,默认)

2、
crossdomain(默认网站根目录下),如
<cross-domain-policy>
    <allow-access-from domain="*.yinsw.com" secure="true"/>
    <allow-access-from domain="localhost"/>
</cross-domain-policy>
secure=true(https访问时才允许)

3、
flash9以上访问http请求,如果允许在http发送头部(header)信息,(常见调用webservice不成功时)
<allow-http-request-headers-from domain="*" headers="*"/>

4、
不想让整个网站都被跨域访问,在public以外的文件夹都不允许。
Security.loadPolicyFile("http://www.aa.com/public/policy.xml")

5、
创建者授予脚本互访许可-http
Security.allowDomain("*");  正确的写法
Security.allowDomain("a.com","b.com"); 正确的写法
Security.allowDomain("*.a.com")  错误的写法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值