(十八)Flex4_自定义ActionScript组件

Spark组件是按复合(composition)的思想设计实现的
Spark组件的外观与功能是独立的
外观只负责视觉感受,而功能则是业务逻辑的实现

皮肤必须知道它要装扮的类的名字
以便编译器检查皮肤类是否具备了相关要素(皮肤部件)
如果想知道哪些皮肤部件对某个组件是必须的,
可以参考ActionScript 3.0 Language Reference

[Button没有必须的皮肤部件,因此为按钮做皮肤比较简单]
注意:利用组件中的Script块可以通过编程方式控制皮肤
      也可以在样式表中对皮肤进行某些调整

Flex框架包含两套组件:MX组件和Spark组件
组件又分为两种类型:有皮肤的和没有皮肤的
如:Group,DataGroup就是没有皮肤的
---------------------------------------------------------------------------------
任务:
    创建自定义的皮肤
    创建自定义组件(开发组件,组件重用)
    管理皮肤部件和组件生命周期
    使用Scroller
目标:
    开发一个能够重用并且能够换肤的组件,以ActionScript作为主要手段!
实现:
    使用ActionScript创建组件
    1.确定新类要扩展哪个超类
    2.确定新类中需要定义哪些属性、方法
    3.声明新组件将会分派的事件
创建组件,最关键的地方:接口
确定应用程序其它地方如何使用该组件
接口:需要什么数据,返回什么数据
选择基类,确定要扩展哪个类作为组件的起点(考虑有没有现成的类已经具备需要的大部分功能)
---------------------------------------------------------------------------------
自定义组件实现:购物车组件的功能并支持换肤
1.涉及显示购物车中的商品数量,商品金额合计,View Cart按钮
2.需要支持换肤
由于没有适合的基类可供选择,而且需要换肤,所以选择基类为:SkinnableComponent

接口设计:
1.传入购物车
2.只管往里添加商品
3.负责视图切换
内部如何实现对外界而言都被隐藏起来了!
<components:ShoppingList
	shoppingCart="{shoppingCart}"
	addProduct="addProductHandler(event)"
	viewCart="currentState='cartView'"/>

你可能感兴趣的:(actionscript)