从Spark 皮肤开始:转换

本文来自:

http://www.insideria.com/2009/08/getting-started-with-spark-ski-1.html

 

请注意:
此范例使用了Flex 4 SDK nightly build 4.0.0.9033 (可在找到

我打算使用我们创建的按钮,修改下,就直接进入我上个关于Spark皮肤的帖子里。下面是我们上次结束时按钮的样子:

这里是它在我们对Spark皮肤进行一些修改,添加了状态转换之后的样子:

 

 

更改

首先,我们来快速看下进行的修改,以尽量避免混淆。第一个就是对阴影的修改。我添加了一个id, 然后移除alpha.over,distance.over, blurX.over 和 blurY.over。

 

下一个更改就是在添加id处填入Rect, 更改radiusX 和radiusY。你还会注意到命名空间为从LinearGradient 和GradientEntry将mx改成了s(感谢julien)。最后,在中间的GradientEntry,添加id和color.over, 移除ratio.over。

 

转换
现在,我们来看看为什么会这样。我猜想你正在看:转换。我们就从转换开始,这是s数组:Transition objects。我们继续,插入将要使用的两个空状态转换。一个从up state到over state,另一个反之。

The s:transitions数组:

 

无需再重复,我将关注第一个s:Transition, 它将控制从up state到over state的改变。既然我们将在同一时间制造多重效果,我们需要将它们打包到s:Parallel effect。我们也将设置s:Parallel effect 的duration 属性(在本例中,是300毫秒),因此所有的子代效果需要同样长的时间完成。

The s:Parallel effect:

 

现在,把子代效果填入s:Parallel effect。我们将要启动的对象是"fillRect" (s:Rect), "dShadow" (the s:DropShadowFilter), "midGrade" (thes:GradientEntry) 和"labelDisplay" (the s:SimpleText)。我们将要用于"fillRect"和 "dShadow"的效果,用于"midGrade"的效果都是s:Animate effect,它启动值之间的给予属性。为了启动每个值,我们将使用given properties类,设定相应的属性和valueTo属性。

The s:Animate effect for "fillRect":

 

因为我们将改变几个对象的颜色,我们需要添加的一个效果就是"midGrade" 和"labelDisplay"的s:AnimateColor effect。既然我们已经为这两个对象的up state和over state设定了颜色,我们只需设定s:AnimateColor effect的目标属性TargetProperty. 

The s:AnimateColor effect for "midGrade" and "labelDisplay":

<s:AnimateColor targets="{[midGrade,labelDisplay]}"/>

现在,我们将从up state到over state的转换放在一起。从over state回到up state的转换非常相似,你可以在全部代码理看到。

从up state到over state的转换

 

最后,Spark皮肤有状态转换的全部代码:

最后的转换皮肤按钮:

像 上一次一样,我们来进行几个改变…

启动"fillRect"的radiusX 到 -5:

<s:Animate target="{fillRect}">

     <s:SimpleMotionPath property="radiusX" valueTo="-5"/>

</s:Animate>

启动"fillRect"的"fillRect"到-5。确定在over-to-up的转换中,使之回复到之前的状态。

radiusY to -5 (up-to-over):

<s:Animate target="{fillRect}">

     <s:SimpleMotionPath property="radiusY" valueTo="-5"/>

</s:Animate>

radiusY to 10 (over-to-up):

<s:Animate target="{fillRect}">

     <s:SimpleMotionPath property="radiusY" valueTo="10"/>

</s:Animate>


就是这样了。感谢阅读。再重复遍,我希望您能尝试Flex 4里所有不同的Spark皮肤(和转换)。试一试,学一学,很有趣的哟!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值