`
#天琪#
  • 浏览: 159321 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

Flex动画效果与变换(三)

    博客分类:
  • FLEX
阅读更多
转自:http://xinsync.xju.edu.cn/index.php/archives/1306


这篇文章是Flex动画效果变换的最后一编了,这篇将会讲述Flex中的“变面”技术,即是Transitions!
如果看过Flex SDK里面的自带的例子程序,有一个叫“Flex Store”的应用,在里面的手机列表中看某一个手机的详细时,就是这种效果,不多说,这篇会比较简单,先看看效果:在线播放
看到了效果了吧,这种的变换不难实现,再来看看代码再解析:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” width=”695″ height=”555″>
<mx:states>
<mx:State name=”A”>
<mx:SetProperty target=”{windowA}” name=”width” value=”500″/>
<mx:SetProperty target=”{windowA}” name=”height” value=”300″/>
<mx:SetProperty target=”{windowC}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowC}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowC}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowD}” name=”x” value=”373″/>
<mx:SetProperty target=”{windowD}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowD}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowD}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowB}” name=”x” value=”23″/>
<mx:SetProperty target=”{windowB}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowB}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowB}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowC}” name=”x” value=”200″/>
</mx:State>
<mx:State name=”B”>
<mx:SetProperty target=”{windowD}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowD}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowC}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowC}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowA}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowA}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowB}” name=”width” value=”500″/>
<mx:SetProperty target=”{windowB}” name=”height” value=”300″/>
<mx:SetProperty target=”{windowA}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowC}” name=”x” value=”200″/>
<mx:SetProperty target=”{windowC}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowB}” name=”x” value=”23″/>
<mx:SetProperty target=”{windowD}” name=”x” value=”373″/>
<mx:SetProperty target=”{windowD}” name=”y” value=”333″/>
</mx:State>
<mx:State name=”C”>
<mx:SetProperty target=”{windowD}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowD}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowB}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowB}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowA}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowA}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowC}” name=”width” value=”500″/>
<mx:SetProperty target=”{windowC}” name=”height” value=”300″/>
<mx:SetProperty target=”{windowA}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowB}” name=”x” value=”200″/>
<mx:SetProperty target=”{windowB}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowC}” name=”x” value=”23″/>
<mx:SetProperty target=”{windowC}” name=”y” value=”19″/>
<mx:SetProperty target=”{windowD}” name=”x” value=”373″/>
<mx:SetProperty target=”{windowD}” name=”y” value=”333″/>
</mx:State>
<mx:State name=”D”>
<mx:SetProperty target=”{windowC}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowC}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowB}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowB}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowA}” name=”width” value=”150″/>
<mx:SetProperty target=”{windowA}” name=”height” value=”150″/>
<mx:SetProperty target=”{windowD}” name=”width” value=”500″/>
<mx:SetProperty target=”{windowD}” name=”height” value=”300″/>
<mx:SetProperty target=”{windowA}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowB}” name=”x” value=”200″/>
<mx:SetProperty target=”{windowB}” name=”y” value=”333″/>
<mx:SetProperty target=”{windowD}” name=”x” value=”23″/>
<mx:SetProperty target=”{windowD}” name=”y” value=”19″/>
<mx:SetProperty target=”{windowC}” name=”x” value=”373″/>
<mx:SetProperty target=”{windowC}” name=”y” value=”333″/>
</mx:State>
</mx:states>
<mx:transitions>
<mx:Transition fromState=”*” toState=”*”>
<mx:Parallel targets=”{[windowA, windowB, windowC, windowD]}”>
<mx:Move />
<mx:Resize />
</mx:Parallel>
</mx:Transition>
</mx:transitions>
<mx:TitleWindow x=”23″ y=”19″ width=”250″ height=”200″ layout=”absolute” title=”A” id=”windowA” click=”currentState=’A'” />
<mx:TitleWindow x=”309″ y=”19″ width=”250″ height=”200″ layout=”absolute” title=”B” id=”windowB” click=”currentState=’B'” />
<mx:TitleWindow x=”23″ y=”260″ width=”250″ height=”200″ layout=”absolute” title=”C” id=”windowC” click=”currentState=’C'” />
<mx:TitleWindow x=”309″ y=”260″ width=”250″ height=”200″ layout=”absolute” title=”D” id=”windowD” click=”currentState=’D'” />
</mx:Application>
代 码会比较多,我们先看看<mx:states>标签,它是一个集合,就是你的程序有多少个状态,什么是状态呢?我自已理解就即是有多少个“面 谱”,即是现在程序里面有四个显示界面状态,所以里面有四个<mx:State>标签,每个<mx:State>状态都需要有一 个名字name属性,以区分是哪个界面状态,在每个状态里面都有很多<mx:SetProperty>的标签,看英文都知道了,该标签用于设 置这个状态下的所有界面元素的属性(组件的属性),因为每个界面状态中各个组件的大小布局都不同,所以在状态标签里就要预先设置好该状态下的组件的位置与 大小,那个target=”{windowC}”属性就是设置你要设置的哪个组件的名字拉,name=”height”就是你要设置的属性value= “333″就是你要设置该属性的值,我们细心看看的话,可能会发现,每个状态里面设置的属性,都是width,height,x,y这四个属性,我们看看 上面的最终效果就知道无论切换哪个状态,组件间的变换来来去去都是移动位置与大小改变,就是说当你变换状态时,需要改动哪些属性的,就将它的目标值设置在 <mx:SetProperty>标签里。再看看下面的<mx:transitions>标签,这个也是个集合,里面放着不同的 变换方法<mx:Transition>,我们来看看变换标签的代码:
<mx:Transition fromState=”*” toState=”*”>
<mx:Parallel targets=”{[windowA, windowB, windowC, windowD]}”>
<mx:Move />
<mx:Resize />
</mx:Parallel>
</mx:Transition>
formState 与toState属性是要设置该状态变换是怎样触发的,里面要填上状态的名字,<mx:State name=”C”>   C就是状态的名字,即是如果你formState=”A”,toState=”C”的话,只有从A状态切换到C状态时,才会产生以上的变换动画效果,如果 不附合该规则如A切换到B状态的话,则只会按状态的属性设置值来直接生成视图,而没有动画渐变效果了。如果填上“*”的话,就是无论是哪个状态切换到哪 个,都会运行动画效果,至于变换期间用到哪种动画效果来进行渐变,就在它的下级标签里定义了,这里它用到了<mx:Parallel>并列播 放移动与重整大小的动画效果,之前文章讲过,这里不多说了。基本上,一个变换就做好了,但我们还需要触发它,也就是去改变程序当前的显示状态:click =”currentState=’A'” 在每个组件的click事件里,改变程序的currentState值,就是改变程序的当前显示状态!之后动画效果就会触发了!
本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/1306
分享到:
评论

相关推荐

    flex中动画效果

    在 Flex 3.0 中,动画效果是增强用户体验的关键特性之一,允许开发者通过编程方式实现多种视觉变换,使得用户界面更加生动和吸引人。 在 Flex 中,动画效果主要通过 `Effect` 类来实现,它们可以应用于组件或容器,...

    flex动画效果与变幻.pdf

    #### 三、Flex动画效果的使用 在Flex中使用动画效果有两种主要的方式:一是通过调用特定效果对象的`play()`方法;二是利用触发器来自动播放动画效果。下面分别介绍这两种方式: ##### 3.1 使用`play()`方法播放...

    Flex 布局变化时的动画效果解析 简单版

    这篇博客“Flex布局变化时的动画效果解析 简单版”可能是作者对如何在Flex布局中实现动态变换的一种简明介绍。 首先,我们需要理解Flex布局的基础概念。在Flex布局中,容器被设置为`display: flex`,它的子元素称为...

    FLEX4动画特效

    描述中的“样例集合”意味着这个压缩包可能包含了多种不同类型的动画,比如淡入淡出、滑动、旋转、缩放、颜色变换等,这些都是Flex4动画系统中常见的特效。Flex4引入了新的动画模型——Timeline Animation和Effect ...

    flex翻书效果 flex翻书效果

    总结,实现Flex翻书效果涉及到了Flexbox布局、CSS3动画、3D变换以及JavaScript事件处理等多个技术点。通过巧妙地组合这些技术,可以创建出高度交互和沉浸式的用户体验。在实际开发中,我们需要考虑浏览器兼容性、...

    Flex2的几个行为动画源码

    7. **NewIris**: "Iris"通常与相机镜头的缩放或展开有关,这可能是一个关于视图变换或过渡效果的示例,例如缩放、平移或旋转。 8. **ParallelExample**: 并行行为允许同时运行多个动画。在Flex2中,你可以创建一个...

    flex3d效果展示

    在文件名“Flex3d动画引擎_效果展示”中,我们可以推断出这是一个关于Flex3D动画引擎的示例或教程,可能包含了如何创建和控制3D动画的详细步骤,以及如何实现特定效果的代码片段。学习这样的资源,开发者可以更好地...

    Flex 3D切换效果

    总的来说,"Flex 3D切换效果"是通过巧妙地运用ActionScript 3.0的3D特性、变换和动画机制来实现的。掌握这些技术,不仅能够提升Flex应用的用户体验,也有助于开发出更具创新性和吸引力的用户界面。在实际项目中,...

    flex 做的控件翻转动画效果

    在本文中,我们将深入探讨如何使用Adobe Flex技术创建控件翻转动画效果。Flex是一种基于MXML和...通过理解`Animate`、`Effect`以及相关的3D变换类,开发者可以自由地定制和扩展动画效果,以满足不同应用场景的需求。

    Flex开门,关门,翻转,效果

    在Flex中,可以使用TransitionManager或者直接在MXML组件中定义动画来实现这种效果。TransitionManager提供了一系列预定义的过渡效果,如滑动、淡入淡出等,可以方便地应用于组件的显示和隐藏。此外,开发者也可以...

    flex coverflow 效果示例

    在Flex中,可以使用Tween类或Timeline类来创建平滑的动画效果。这些动画可以控制元素的旋转角度、速度和缓动效果,以实现逼真的Cover Flow体验。 5. **布局管理**: 在Coverflow组件中,元素的布局管理至关重要。...

    flex写的变形效果

    本话题聚焦于使用Flex实现的“变形效果”,这通常涉及到图形和元素在用户交互下的动态变换。 Flex Builder是Adobe公司提供的一个集成开发环境(IDE),专门用于开发Flex应用。它提供了代码编辑、调试、性能分析等...

    flex3D效果

    Flex3D效果是一种在Flash平台上实现的立体三维(3D)视觉展示技术,它使得开发者能够在Web上创建出富有交互性和动态性的3D图形应用。这个"flex3D效果"项目是一个专门用于浏览图片的3D展示应用,用户可以通过它在...

    Flex 放大镜效果

    8. **Tweening**:为了提供平滑的动画效果,可以使用Tween库,如GreenSock Animation Platform (GAP) 或 Flex的内置TweenLite,来平滑地改变放大镜的位置和大小。 9. **皮肤自定义**:Flex允许开发者自定义组件外观...

    Flex3D效果图片浏览器

    总的来说,Flex3D效果图片浏览器是一个利用Adobe Flex技术开发的创新性应用,它将3D图形技术与图片浏览相结合,通过Stage3D API实现了高效的硬件加速3D渲染,使用户能够在多维度上欣赏图片,提升了图片浏览的趣味性...

    flex 超炫的3d效果+源码

    在本压缩包中,"超炫的3D效果"指的是使用Flex实现的三维视觉效果,这种效果可以为用户带来更为生动、立体的交互体验。 Flex中的3D效果主要通过Stage3D API来实现。Stage3D是Flash Player和Adobe AIR的一个底层图形...

    Flex4.5做的3D网页效果展示墙

    在Flex中,开发者可能利用Stage3D技术或者第三方库如Away3D来创建鱼眼效果,通过对像素的处理和投影变换来实现这种扭曲的视觉效果。 总的来说,这个项目展示了Flex4.5和As3在3D网页效果方面的强大能力,不仅能够...

    Flex 3D圆形隧道效果

    4. **动画和时间线**:为了创建动态的3D隧道效果,我们需要使用Animate3D动作或Timeline类来控制3D对象的运动。例如,通过连续改变3D对象的旋转角度,可以模拟物体沿着隧道壁旋转的效果。 5. **光照和材质**:在3D...

    3D效果Flex源码

    2. **3D转换与动画**:在Flex中,可以使用`Matrix3D`类进行复杂的3D变换,如旋转(rotateX, rotateY, rotateZ)、平移(translate)和缩放(scale)。源码可能包含使用`Matrix3D`实现的动态3D旋转、平移和缩放动画,...

Global site tag (gtag.js) - Google Analytics