`
cuixuxucui
  • 浏览: 351816 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用AS3帧代码控制动画

 
阅读更多

美术同事出了一个资源,大致是这样的:四个角色形象动画,聚在一个台子四周。有一个向左和向右按钮,点击后四个形象分别向对应的方向旋转后将其中一个推到正面,表示当前选中的的角色形象。具体资源是,使用了一个圆形的引导线,每次点击使用逐渐变化的6帧表示这个旋转。4段动画,共计24帧。

尝试一:

我创建了一个代码脚本层,把代码写在第一帧上了。不爽的事情发生了,每次旋转一圈后,这段代码的全局变量就会被重新初始化。。。。。

尝试二:

使用文档类,却发现我这个资源只是库元件。文档类也帮不上我。

尝试三:

额外使用一个MC,将上面的24帧MC元件放在一层中,另外再创建一层放代码,使用引用名字如figureMc来控制这个24帧动画的行为。目前看起来一切正常~~

附代码:

 

//2011.10.17 xu.cui

rotateFigure.stop();//rotateFigure是旋转动画

var beginFramesArray:Array = [1,7,13,19];//四段动画的起始帧

var endFramesArray:Array = [6,12,18,24];//四段动画的结束帧

var position:int = 0;//标记箭头点击位置(向右加1,向左减1)

var curEndFrame:int = 0;//当前段的动画开始播放后,在哪一帧结束

var direction_isNext:Boolean = true;//标记箭头方位(默认向右)

 

pre.addEventListener(MouseEvent.CLICK, preClickHandler);

next.addEventListener(MouseEvent.CLICK, nextClickHandler);

 

function preClickHandler(event:MouseEvent):void{

direction_isNext = false;

position --;

playMc(position);

trace("position:"+position);

}

 

function nextClickHandler(event:MouseEvent):void{

direction_isNext = true;

position ++;

playMc(position - 1);//因为起始默认值为0,所以需要减1

trace("position:"+position);

}

 

function figureType():int{

return position % beginFramesArray.length;

}

 

function playMc(posi:int):void{

var remainder:int = posi % beginFramesArray.length;

if(remainder < 0){

remainder += beginFramesArray.length;

}

if(direction_isNext){

rotateFigure.gotoAndStop(beginFramesArray[remainder]);

curEndFrame = endFramesArray[remainder];

}else{

rotateFigure.gotoAndStop(endFramesArray[remainder]);

curEndFrame = beginFramesArray[remainder];

}

//trace("remainder:" + remainder + ",curEndFram:" + curEndFrame);

rotateFigure.addEventListener(Event.ENTER_FRAME, enterFrameHandler);

}

 

function enterFrameHandler(event:Event):void{

//trace("currentFrame:" + rotateFigure.currentFrame);

if(direction_isNext){

rotateFigure.nextFrame();

}else{

rotateFigure.prevFrame();

}

if(rotateFigure.currentFrame == curEndFrame){

rotateFigure.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);

}

}

分享到:
评论

相关推荐

    as3动画特效

    在AS3代码中,可以通过编写脚本来模拟这些效果,实现更灵活的控制。 4. **运动路径**:通过定义曲线路径,可以引导对象沿特定路线移动。使用Point对象和CurveTo()方法可以创建自定义路径,使动画更加生动有趣。 5....

    AS3生成GIF动画

    4. **动画控制**:AS3提供了一些方法来控制动画,如` ENTER_FRAME`事件,当每一帧开始时触发,适合做连续动画。此外,`gotoAndPlay()`和`stop()`函数可以用来跳转到特定帧并播放或停止动画。 5. **GIF编码库**:...

    FlashAS3动画教程

    AS3提供了一种更为精细的动画控制方式,允许开发者通过代码动态地创建和控制动画,而不是仅仅依赖于时间轴。这包括但不限于: - **Tween类**:使用Tween类可以创建非线性动画效果,如缓入缓出,为动画添加更自然的...

    flash as3 帧上代码 重力球.rar

    在AS3中,我们可以利用时间轴和帧来控制动画的播放。 在"重力球"项目中,每个球体的运动状态由其位置、速度和加速度决定。其中,加速度是由重力常量引起的,通常在二维环境中为9.8(m/s²)。在每一帧,我们都会...

    AS 播放帧动画ImageView:FAImageView

    通过这些方法,你可以更好地控制帧动画的行为,以满足你的应用需求。 总的来说,`FAImageView`是一个为Android开发者提供便利的库,它使得在代码混淆环境下播放帧动画变得简单可靠。通过这个库,你可以专注于应用...

    AS3颜色过渡动画

    总的来说,AS3颜色过渡动画涉及了面向对象编程、`ColorTransform`类的使用、时间轴控制以及帧动画等概念。开发者通过这些技术,能够创造出动态且引人入胜的视觉效果,为用户带来更加生动和有趣的交互体验。

    FLASHAS3代码

    3. 时间轴事件:AS3提供了关键帧、动作脚本和时间轴控制,允许开发者精确地控制动画播放。例如,通过stop()和play()函数,可以实现动画的暂停与播放。 三、显示列表 4. 显示对象:DisplayObject是AS3中的基础显示类...

    帧动画推进推出控制类

    通过使用这样的帧动画控制类,开发者可以更加灵活地设计和控制动画效果,提升用户体验。同时,它也降低了代码的复杂性,使项目更容易维护和扩展。对于AS3的开发者来说,理解和掌握这种类的使用,无疑会提高他们在...

    乒乓球AS3源代码

    【标题】"乒乓球AS3源代码...6. 探索Flash IDE的使用,以及如何在FLA文件中嵌入和调用AS3代码。 通过这个项目,初学者不仅可以提升AS3编程技能,还能积累游戏开发的实际经验,为将来创建更复杂的游戏打下坚实基础。

    flash AS3 动画教程

    1. **时间轴控制**:了解帧、层和关键帧的概念,以及如何通过时间轴来创建和控制动画。 2. **动作脚本基础**:学习AS3的变量、数据类型、运算符、流程控制语句(如if-else、for循环)以及函数。 3. **显示对象**:...

    flash基于时间帧的动画

    在Flash中,基于时间帧的动画是一种常见的动画制作方法,它允许开发者通过脚本来精确控制动画的时间流逝和帧序列。这种技术尤其适用于那些需要动态交互和复杂动作序列的项目。以下是对这一主题的详细讲解: 一、...

    as3.0动画殿堂源代码

    在Flash中,可以利用时间轴来创建帧动画,但通过AS3.0,开发者能更精细地控制动画的时间轴,例如使用` ENTER_FRAME `事件监听每一帧的变化,或者使用` Tween `类平滑过渡物体的位置、大小、透明度等属性。...

    flash逐帧动画实例

    2. 关键帧:在动画的关键时刻设置关键帧,便于控制动画流程。 3. 对齐与缩放:在制作过程中注意元素的位置和大小,保持一致性以保证动画的连贯性。 4. 动画优化:避免过多的逐帧动画导致文件过大,可以考虑使用形状...

    控制flash按倒序播放 as3代码

    本主题将深入探讨如何使用AS3控制Flash影片按倒序播放。Flash中的时间轴和帧序列是关键概念,而AS3允许我们通过编程方式控制这些元素。 1. **理解Flash的时间轴和帧** Flash的时间轴是一系列帧的集合,每一帧都...

    as3纯代码下雨效果

    - 时间轴和帧:在Flash中,时间轴控制动画的播放,帧则是动画中的时间单位。 2. **实现原理**: - 雨滴对象:创建一个自定义的Sprite或MovieClip类,代表单个雨滴。这个类可能包含位置、速度、大小等属性,以及...

    Flash AS3 代码实现滤镜动画效果

    通过上述代码的详细解读,我们可以清楚地了解到如何使用AS3代码实现滤镜动画效果的具体步骤和技术细节。掌握这些技巧不仅能够帮助开发者在Flash项目中加入更丰富的视觉元素,还能提升用户界面的互动性和吸引力。希望...

    as3 动画类库备份

    标题 "as3 动画类库备份" 指向的是一个使用ActionScript 3(AS3)编写的动画库,这种库通常用于Flash开发,为开发者提供了方便的动画处理功能。AS3是Adobe Flash Professional、Flash Builder等工具支持的编程语言,...

    as3插件可以有多种动画

    " Wendang " 这个标签可能是指文档或者资料的意思,暗示着压缩包内包含的是关于AS3动画的教程、示例代码或者是相关资源的文档。通常,这类文档会涵盖AS3动画的基础知识、进阶技巧、实例解析等内容,有助于学习者或...

    FLASH AS3正方体动画

    总的来说,"FLASH AS3正方体动画"这个主题涵盖了许多基础的AS3编程和动画原理,包括类的使用、图形绘制、事件处理和基于时间的动画。尽管描述中将其描述为“无聊”,但这些都是制作更复杂交互式内容的基础,对于深入...

Global site tag (gtag.js) - Google Analytics