思路应该是一个从0%到100%的动画展开的效果,大概需要写0%,50%,100%三个样式。
弹窗的css代码大概是:position: fixedz-index: 2000left: 0top: 0这样弹窗的左上角原点在页面最左上角,如果要调整位置要用CSS变换特效(transform)的平移translate函数达到目的: translate(x, y)(长度值或者百分比):在水平方向、垂直方向平移元素。 translateX(value):水平方向平移。 translateY(value):垂直方向平移。 scale(x, y)、scaleX(value)、scaleY(value):在水平方向、垂直方向或者两个方向上缩放元素。 rotate()、rotateX()、rotateY()、rotateZ():rotate支持3D效果,可在x、y、z轴上旋转元素。 skew()、skewX()、skewY():在水平方向、垂直方向或者两个方向倾斜一定的角度。 另外弹窗展开的动画要用到css3的动画属性: animation-delay:设置动画开始前的延迟时间。 animation-direction:设置动画循环播放的时候是否方向播放,包含normal和alternate两个值。 animation-duration:设置动画播放持续的时间。 animation-interacion-count:设置动画的播放次数,可以为具体数据或者无限循环关键字infinite。 animation-name:指定动画名称。 animation-play-state:允许动画暂停和重新播放,包含running、paused。 animation-timing-function:指定如何计算中间动画值,如Alert弹出窗口的旋转特效
css中
@namespace
s
"library://ns.adobe.com/flex/spark"
@namespace
mx
"library://ns.adobe.com/flex/mx"
mx|Alert
{
fontFamily:
VerdanaEmbedded
creationCompleteEffect:
myEffect
}
mxml中
<fx:Style
source="css/style.css"
/>
<fx:Declarations>
<mx:Sequence
id="myEffect">
<mx:Parallel>
<mx:Zoom
/>
<mx:Fade
/>
</mx:Parallel>
<mx:Rotate
/>
</mx:Sequence>
</fx:Declarations>
这样弹出窗口时就有了旋转特效
如果只是改样式的话有以下几种
直接改写默认控件样式
mx|button{
……
}
对指定控件增加样式,#后为控件ID
mx|Button#check{
……
}
或直接指定ID
#haloButton
{
base-color:#0000ff
}
通过状态定义样式
s|Button:down
{
color:#33CC33
}
增加控件样式,用styleName+"样式名"的方式应用于控件
.myButton{
……
}
增加子样式
mx|TabNavigator{
firstTabStyleName:
"MyFirstTab"
}
.MyTabs
{
……
}