很不错的视频教程
原文地址:http://blog.sina.com.cn/s/blog_3ecb9b1101009nx0.html
全屏观看地址:
视频1地址
视频2地址
教案发布:
ActionScript 3.0 体验试教学 ——Making Things Move
第一部分 AS动画基础 第一章 基础动画概念 第二章 ActionScript 3.0 动画基础 第三章 三角学应用 第四章 渲染技术
第二部分 基础运动 第五章 速度与加速度 第六章 边界与摩擦力 第七章 交互运动:让物体动移动
第三部分 高级运动 第八章 缓动与弹性运动 第九章 碰撞检测 第十章 坐标旋转及角度碰撞 第十一章 撞球物理 第十二章 粒子引力及万有引力 第十三章 正向运动学: 行走 第十四章 反向运动学: 拖拽与伸展
第四部分 3D 动画 第十五章 3D 基础 第十六章 3D 线条及填充 第十七章 背光剔除与 3D 灯光
第五部分 技术补充 第十八章 矩阵 第十九章 实用技巧
效果预览 Easing
效果预览 Spring 链
专业一点
一、格式 遇到 “{” 换行后按 “tab” 缩进。保证编码的层次嵌套关系明确、清晰。 如: for(i:uint = 0; i < 10; i++) { if(i % 2 == 0) { trace(i); } }
二、变量名 1.尽量要让变量名有意义,不要使用如: aaa,bbb,a1,a2 这样的变量。应该尽量使用英文单词。
2.驼峰式变量名:混合使用大小写字母 如:stageWidth,maxHeight,oldX,oldY。
三、运算符两旁加入空格 在运算符两旁加入空格,可以让编码看起来井井有条,不会是乱糟糟的一片,难于分辨。这样就让我们的程序变得条理清晰起来。 如: i = 10; i < 5; i += 8; i * j / 2 + 3
准备工作
1.创建一个 Ball 类: package { import flash.display.Sprite; public class Ball extends Sprite { public var radius:Number; public var vx:Number = 0; public var vy:Number = 0; private var color:uint; public function Ball(R:Number = 30,Col:uint = 0xff0000) { radius = R; color = Col; graphics.beginFill(0xff0000); graphics.drawCircle(0,0,radius); graphics.endFill(); } } }
2.ball 对象:var ball:Ball = new Ball();

3.将 ball 加入显示列表:addChild(ball);
4.创建类路径 编辑—> 参数首选项 —> ActionScript —>“ActionScript 3.0 设置”
2.Easing 与 Spring 公式应用
Easing : var easing:Number = 0.8; var targetX:Number = 100; ball.vx = (targetX – ball.x) * easing; ball.x += ball.vx;
Spring: var spring:Number = 0.8; var targetX:Number = 100; ball.vx += (targetX – ball.x) * spring; ball.x += ball.vx;
3.Easing 效果文档类(EaseToMouse.as):
package { import flash.display.Sprite; import flash.events.Event; public class EaseToMouse extends Sprite { private var ball:Ball; private var easing:Number = 0.2; public function EaseToMouse() { init(); } private function init():void { ball = new Ball(); addChild(ball); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(event:Event):void { var vx:Number = (mouseX - ball.x) * easing; var vy:Number = (mouseY - ball.y) * easing; ball.x += vx; ball.y += vy; } } }
4.Spring 链效果文档类(ChainArray.as):
package { import flash.display.Sprite; import flash.events.Event; public class ChainArray extends Sprite { private var balls:Array; private var numBalls:Number = 5; private var spring:Number = 0.1; private var friction:Number = 0.8; private var gravity:Number = 5; public function ChainArray() { init(); } private function init():void { balls = new Array(); for(var i:uint = 0; i < numBalls; i++) { var ball:Ball = new Ball(20); addChild(ball); balls.push(ball); } addEventListener(Event.ENTER_FRAME, onEnterFrame); }
private function onEnterFrame(event:Event):void { graphics.clear(); graphics.lineStyle(1); graphics.moveTo(mouseX, mouseY); moveBall(balls[0], mouseX, mouseY); graphics.lineTo(balls[0].x, balls[0].y); for(var i:uint = 1; i < numBalls; i++) { var ballA:Ball = balls[i-1]; var ballB:Ball = balls[i]; moveBall(ballB, ballA.x, ballA.y); graphics.lineTo(ballB.x, ballB.y); } } private function moveBall(ball:Ball, targetX:Number, targetY:Number):void { ball.vx += (targetX - ball.x) * spring; ball.vy += (targetY - ball.y) * spring; ball.vy += gravity; ball.vx *= friction; ball.vy *= friction; ball.x += ball.vx; ball.y += ball.vy; } } }
|