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

第三篇 动态创建图形和动画效果

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

  1. 创建过渡效果动画:

类fl.transitions/fl.transitions.easing

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

Tween:动态创建补间动画

transitionManager/transition:创建过渡效果

  1. 使用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     结束时缓动

  1. 使用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:停止触发

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

  1. 滤镜的包: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;

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

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

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

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

Point:某个位置,x/y

Rectangle:创建和修改矩形对象

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

  1. 使用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;

  1. 使用Matrix类动态变换影片剪辑的形状:
  2. 使用Point类动态获取像素点:
  3. 使用Rectangle类动态获取对象的区域:
  4. 动态绘制图形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();

  1. 绘图的使用方法:

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();

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

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

不懂?

原文地址:https://www.cnblogs.com/tinytiny/p/2420995.html