AS知识点总结

1. ActionScript语言提供隐式setter和getter。隐式的setter和getter看起来像方法,但对外是属性。实践证明setter和getter对解决频繁转换类型问题是很好的解决方法。

 

2. 图片绑定的三种方法:

  

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

              xmlns:s="library://ns.adobe.com/flex/spark"

              xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

    <s:layout>

       <s:HorizontalLayout/>

    </s:layout>

    <fx:Script>

       <![CDATA[

           [Bindable] private var imgUrl:String = "Cafeteria";

       ]]>

    </fx:Script>

    <fx:Declarations>

       <!-- 将非可视元素(例如服务、值对象)放在此处 -->

    </fx:Declarations>

    <mx:Image source="{'assets/images/'+ imgUrl +'.jpg'}"/>

    <mx:Image source="assets/images/{imgUrl}.jpg"/>

    <s:BitmapImage source="@Embed('assets/images/Cafeteria.jpg')"/>

</s:Application>

在这里需要注意如果使用第二种方式绑定的话只能使用<mx:Image>组件,<s:BitmapImage>组件不支持。

 

 3. 在mxml中进行特效的一个小示例:

<s:transitions>

       <s:Transition>

           <s:CrossFade

              target="{newsItem}"

              duration="1000" />

       </s:Transition>

</s:transitions>

<s:Group id="newsItem" width="255">

       <s:BitmapImage source="@Embed('assets/images/Cafeteria.jpg')"

                     visible="true" visible.page2="false"/>

       <s:BitmapImage source="@Embed('assets/images/seminar.jpg')"

                     visible="false" visible.page2="true"/>

   </s:Group>

 

 

4.  effect特效简单介绍:
    Transition类中的几个属性:
       fromState 指定在进行过渡时的原视图状态
       toState  指定在进行过渡时的目标视图状态
       effect   在进行过渡时所采用的Effect对象.可以使用<mx:Parallel>和<mx:Sequence>标签来定义多个效果。

       <mx:Parallel>标签指定效果同时发生, 而<mx:Sequence>标签指定效果按顺序依次发生。两者可以嵌套使用从
 而生成更复杂的动画。  可以利用这两个标签中的targets属性把效果应用于同个状态中的多个组件。

       将formState或toState设置为星号(*)表示任意的视图状态

 

5. DataGrid  组件有默认的排序行为

 

 

6.  flex中传值的几种方式:

     (1)  通过自定义事件传值;

      (2) 在使用popupManager弹出窗口时进行传参,如:

         

    var win:ConfirmScreen = ConfirmScreen(PopUpManager.createPopUp(this, ConfirmScreen, true));

     win.prod = prod;  //要传递的参数

 7.   有时候我们指定<mx:Model>标签的source属性并且指向外部XML文件,将XML嵌入到一个SWF文件上。这是一种不好的做法,因为XML被编译紧了SWF文件中,导致了文件尺寸变大。而且,XML也无法立即更新,每当数据改变时,你都得重新编译SWF。这对于会改变的数据或者大型数据来说很不实际。实践中更好的方法是使用HTTPService类在运行时加载XML.

 

8.理解安全问题

Flex遵守Flash Player的安全沙箱限制,这意味这Flash Player会阻止一个域中的应用程序加载另一个域中的数据。解决办法就是实现跨域访问,下面是一个跨域策略文件的例子,定义了一个crossdomain.xml,位于SWF文件调用的Web服务器的根目录下,指定了哪些域能通过Flash Player访问其中的资源。

 <cross-domain-policy>

       <allow-access-from domain=”*”/>

<cross-domain-policy/>

有关更多关于Flash Player沙箱限制的更多信息可在Adobe官方看到:

www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_14213

 

 

    9.使用一个常规的Array对象作为数据提供者是不对的。它虽然能在首次使用时将数据填入组件,但Array中的数据发生更改是组件不会更新。  最理想的就是使用ArrayCollection.当修改用于数据绑定的ArrayCollection时,视觉显示会随着底层数据的更改而自动更新。

 

       10.ArrayCollection自带了排序功能。如下演示代码:

var prodSort:Sort = new Sort();

var sortField1:SortField = new SortField(catId);   //要排序的属性

var sortField2:SortField = new SortField(prodName);  //要排序的属性

prodSort.fields = new Array(sortField1, sortField2);

myArrayCollection.sort = prodSort;

myArrayCollection.refresh();

 

 

   11.一般来说,当一个组件已经实例化并已正确地位于应用程序中时,会分发creationComplete事件。Application对象的子元素(Application容器中的所有组件)都已广播了各自的createComplete事件以后,Application对象才会分发自身的creationComplete事件。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值