您的位置:首页 > 其它

flash学习笔记(八)--动态创建图形和动画效果

2012-03-28 11:58 519 查看
第三篇 动态创建图形和动画效果

第十八章 使用过度效果相关类动态创建动画效果

创建过渡效果动画:

类fl.transitions/fl.transitions.easing

Lris:动态缩放的方形或圆形动画遮罩来显示影片剪辑对象

Tween:动态创建补间动画

transitionManager/transition:创建过渡效果

使用TransitionManager类:

1>第一种方法:start

import fl.transitions.*;

import fl.transitions.easing.*;

import flash.display.MovieClip;

//var myMovieClip_mc:MovieClip = new MovieClip();

TransitionManager.start(myMovieClip_mc,{type:Iris,direction:Transition.IN,duration:1000,easing:Strong.easeOut,startPoint:5,shape:Iris.CIRCLE});

2>或者使用下面方法:startTransition

var myTM:TransitionManager = new TransitionManager(myMovieClip_mc);

myTM.startTransition({type:Iris,direction:Transition.IN,duration:300,easing:Strong.easeOut,startPoint:21,shape:Iris.CIRCLE});

注意:startPoint和shape是过渡效果Iris的参数

3>关于参数transParams:

Type:过渡效果

Direction:过度方向transition.IN或者OUT

Duration:时间(毫秒)

Easing:缓动效果

4>遮帘过渡:

Blinds、numStrips条纹数1-50、dimension垂直0水平1

淡化过渡:

Fade

飞行过渡:

Fly、startPoint

光圈过渡:

Iris、startPoint、shape:Iris.SQUARE方形Iris.CIRCLE圆形

照片过渡:

Photo

像素溶解过渡:

PixelDissolve、xSections水平部分1-50、ySections垂直部分1-50

旋转过渡:

Rotate、ccw顺时针false逆时针true、degrees旋转总共度数1-9999

挤压过度:

Squeeze、dimension水平0垂直1

划入/划出过渡:

Wipe、startPoint

缩放过渡:

Zoom

注意:缓动参数

easing: 缓动模式
None.easeIn Regular.easeIn Srong.easeIn Back.easeIn Elastic.easeIn
None.easeInOut Regular.easeInOut Srong.easeInOut Back.easeInOut Elastic.easeInOut
None.easeOut Regular.easeOut Srong.easeOut Back.easeOut Elastic.easeOut

从左到右 ,即从None到Elastic表示稳固系数,这里给运动的元件附加上一个虚拟的质量

None 很轻,施力就动

Regular 正常,同样施力就动
Srong.easeIn 比较重,需要施加更大的力, 给人的感觉就是动起来很费劲

Back.easeIn 运动之前,有一个向后的动作

Elastic.easeIn 正式运动之前,会前后往复几次

从上到下, 即easeNone 没有缓动 (只有None有这个属性)
easeIn 开始时缓动
easeInOut 开始和结束时缓动
easeOut 结束时缓动

使用Tween类动态创建补间动画:

1> fl.Transitions.Tween类构造函数的语法格式:

var myTween:Tween = new Tween(obj,prop,func,begin,finish,duration,useSeconds);

obj:MC

prop:obj的属性x

func:缓动方法

begin:x开始值数字

finish:x结束值数字

duration:速度

useSeconds:true用秒,false用帧

例子:

import fl.transitions.Tween;

var myTween:Tween = new

Tween(myMovieClip_mc,"x",Elastic.easeOut,0,300,3,true);

2> Tween属性方法事件:

方法:

fForward()/rewind():快进的结尾和倒退到开头

nextFrame()/preFrame:下一帧和上一帧

resume()/stop()/start():返回继续播放,停止,从头开始

toString:返回类名称

yoyo():补间动画相反方向播放

属性:

Duration/finish/FPS/position/time都是只读

事件:

motionChanged:属性更改触发

motionFinished:完成触发

motionResumed:返回触发

motionStarted:开始触发

motionStoped:停止触发

第十九章 使用滤镜动态处理影片剪辑以增加特效

滤镜的包:flash.filters

import flash.filters.BevelFilter;

import flash.filters.DropShadowFilter;

var filter_1:BevelFilter = new

BevelFilter(5,45,0xB5FFC8,1,0x44FF73,1,5,5,1,1,"inner",false);

var filter_2:DropShadowFilter = new

DropShadowFilter(5,45,0x0BD43D,1,12,12,1,1,false,false,false);

var myFilters:Array = test.filters;

myFilters.push(filter_1);

myFilters.push(filter_2);

test.filters = myFilters;

第二十章 动态处理图形和位图以增加特效

使用flash.geom包动态处理图形

ColorTransform:算术方法设置实例的RGB颜色值和颜色转换

Matrix:表示一个转换矩阵,将一个坐标映射到另一个坐标

Point:某个位置,x/y

Rectangle:创建和修改矩形对象

Transform:收集有关应用于对象实例的颜色转换和坐标处理的数据

使用ColorTransform类动态变换影片剪辑的颜色:

import flash.geom.ColorTransform;

import flash.geom.Transform;

var myColorTransform:ColorTransform = new ColorTransform(1,-1,-1,1,97,0,0,0);

var myTransform:Transform = new Transform(myMovieClip);

myTransform.colorTransform = myColorTransform;

使用Matrix类动态变换影片剪辑的形状:

使用Point类动态获取像素点:

使用Rectangle类动态获取对象的区域:

动态绘制图形Graphic:

import flash.display.MovieClip;

var myMovieClip:MovieClip = new MovieClip();

this.addChild(myMovieClip);

var X:Number = 100;

var Y:Number = 100;

var R:Number = 100;

myMovieClip.graphics.clear();

myMovieClip.graphics.lineStyle(1,0x6688AA);

myMovieClip.graphics.beginFill(0xAABBCC,50);

myMovieClip.graphics.moveTo(X,Y);

myMovieClip.graphics.lineTo(X+R,Y);

myMovieClip.graphics.curveTo(R+X,Math.tan(Math.PI/8)*R+Y,Math.sin(Math.PI/4)*R+X,Math.sin(Math.PI/4)*R+Y);

myMovieClip.graphics.lineTo(X,Y);

myMovieClip.graphics.endFill();

绘图的使用方法:

drawCircle():绘制圆形

drawEllipse():绘制椭圆

drawRect():绘制矩形

drawRounRect():绘制圆角矩形

例子:

import flash.display.MovieClip;

var myMovieClip:MovieClip = new MovieClip();

this.addChild(myMovieClip);

myMovieClip.graphics.clear();

//定义线条类型

myMovieClip.graphics.lineStyle(1,0x6688AA);

//开始填充

myMovieClip.graphics.beginFill(0xAABBCC,50);

myMovieClip.graphics.drawRect(50,50,200,100);

//关闭填充

myMovieClip.graphics.endFill();

使用BitmapData类和Bitmap类动态处理位图:

Var myBitmapData:BitmapData = new BitmapData(width,height,[透明度],[fillColor]);

不懂?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: