Bill的其他文章

Flex 4 List 中禁用鼠标滑轮 mouseWheel

SWF: 

You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialize correctly.

   前段时间使用到 List 来分页,使用按钮来滚动时运行的很好,但鼠标的滑轮也会影响滚动条,使得按钮显示错了页码。于是想到要把滑轮禁掉。

  Flex 中滑轮事件的简要介绍如下:

Flex 4 Spark 滚动条(Scroller)

  Spark容器的滚动条不像Halo一样会自动加载,它已被独立出来,需要我们自行设计。

Flex 布局示例 flowlayout

  自定义的布局可以轻松实现所需的功能,flowlayout 继承 layoutbase 实现了浮动添加可视组件并自动换行的功能。

Flex SPARK 及 HALO 布局对比

  和Spark架构的其他新特性一样,全新的布局一样是在强大的Halo布局的基础上发展而来的。Flex3开发者将会发现了解通用执行流程以及相应 的API以及布局逻辑都是十分容易的 。然而,由于Spark更加注重模块化设计所以在一些地方还是有所不同与改进的。

Flex 失效机制(invalidation mechanism)

一、什么是失效机制

Flex4 中spark 和 halo 中组件皮肤设置的方法

在最新的 sdk 里我们不能再用混合编译模式了,默认的主题也改了,Flex 3 的一些样式设计方法都出了问题,不过现在还是有方法

继续停留在过去:

一、修改 Flex 项目的主题
新的 SDK 默认是spark 的主题,所以有很多布局的属性在 mx 里不能用了,但可以在项目的属性里修改主题为 halo ,这样,大部分样式的设计还是可以继续使用的。

二、修改外观设计

Flex 4 Spark 皮肤介绍--以 TextinputSkin 为例

Spark 皮肤是 Flex 4 中的一个新特性。spark.skins 包包含在 Spark 名称空间中,并且已在Adobe 的 Flex 4 LiveDocs 中说明:“自定义 Spark 皮肤为 MXML 文件,定义组成 Spark 组件皮肤的逻辑、图形元素和其他对象”。
spark组件有自己的皮肤,名称就是 组件名+Skin。例如, Textinput 的皮肤文件是 TextinputSkin。
皮肤组件的编写格式都比较相似,我们也可以按照源码自行设计自己所需的皮肤,在 spark 组件的 skinClass 属性制定即可。
下面以 TextinputSkin 为例,简单介绍皮肤的创建过程。

一、命名空间
<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
alpha.disabled="0.5" blendMode="normal">

二、定义主机组件
定义主机组件时,可以从皮肤中访问该主机组件中包含的公开属性和样式。
<fx:Metadata>
<![CDATA[
/**

(转) Flash Player重绘

Flash Player 会以SWF内容的帧频速度来刷新需要变化的内容,而这个刷新的过程,我们通常称为“重绘(redraw)”,只要使用的是 Debug版本的Flash Player, 右键菜单里就会有“Show Redraw Regions (显示重绘区域)” 这个选项,当此选项打开的时候,我们就能清楚地看到此刻场景内被重绘的区域。

那么什么情况下会发生重绘呢?
1、最常见的是情况就是舞台上的可视组件在形状、位置、状态(alpha, scale...)发生改变的时候会触发Flash Player 的重绘。
2、当一个DisplayObject的层级(ChildIndex)发生改变的时候也会导致重绘。
3、当你将一个Sprite / MovieClip 的buttonMode 设置为 true 的时候,即便是单帧动画,重绘会在MouseEvent.MOUSE_DOWN的时候触发。又或者你对DisplayObject设置层级的时候,即便 DisplayObject的层级没有发生改变,也会使得 Flash Player对此显示对象进行重绘。

Flex DateChooser 显示中文标题

我们在国际化时,修改了Flex SDK 的语言包,可以自动变换语言。
不过,我们也可以直接设置一部分的显示,例如改变DateChooser上的中文标题:
<?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/halo" minWidth="1024" minHeight="768">
<fx:Declarations>


<mx:DateChooser id="dtchoose" x="219" y="83"
dayNames="[日,一,二,三,四,五,六]"
monthNames="[一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月]"
change="disDate()" minYear="2007"/>
<fx:Script>

Flex代码整合

看来大家对Array情有独钟,对它讨论的很多,这两天看了篇关于flex如何减少代码量减少内存消耗的帖子,其实也像是代码重整,翻译整理了一下。
前面主要是关于Array的,后面涉及很多,不过有些估计不适用于Flex4了。
1. Avoid the new operator when creating Arrays
尽量避免用new操作符来创建数组
var a = [];
NOT:
var a = new Array();

2. Arrays are expensive to create, do so conservatively
创建数组花销很大,要适当的创建
var vanityCollection01 : Array = new Array();
var vanityCollection02 : Array = new Array();
var vanityCollection03 : Array = new Array();
var vanityCollection04 : Array = new Array();

3. Fastest way to copy an array:
复制数组的快捷方法:
var copy : Array = sourceArray.concat();

Flex Module 的内存回收

Flex 项目环境简介