ActionScript 3.0对文字实现Tween类特效拖动处理

先说明一下Tween类:

我们看一下Tween类的构造函数:

Tween(obj:Object, prop:String, func:Function, begin:Number,finish:Number, duration:Number, useSeconds:Boolean = false)

这些参数依次代表着:
1.要制作动画的对象
2.要改变对象的属性,注意这个值为字符串
3.要用何种方式去用程序补间上诉属性的动画
4.对象属性的初始值(程序开始补间的初始值)
5.对象属性的终端值(程序要补间到的最终值)
6.这段补间动画持续的时间
7.设定动画持续的时间是按帧计算(useSeconds = false),还是按秒计算(useSeconds =true),默认值是使用帧数计算
Tween对象一旦初始化,动画就开始了。Tween类补间的动画可以触发6种事件。最常用的因该是TweenEvent.MOTION_FINISH。动画已结束,就会触发这个事件。

下面是AS3.0的源代码:

import flash.display.Sprite;
import fl.transitions.Tween;
import fl.transitions.easing.Elastic;
import fl.transitions.TweenEvent;
var mySprite:MovieClip = new Symbol();
this.addChild(mySprite);
var xTween:Tween = new Tween(mySprite, "x", Elastic.easeOut, 100,200, 2 , true);
xTween.addEventListener(TweenEvent.MOTION_FINISH,continueMove);
function continueMove(evt:TweenEvent):void {
var tmpTween:Tween = evt.target as Tween;
if (mySprite.x > 300) {
 

  tmpTween.yoyo();
} else {
   tmpTween.continueTo(mySprite.x+ 50, 1);
}
}

//---------------------------------------------------------------对文字实现特效拖动处理---------------------------------------------------------------


话说文字TextField不支持拖动startDrag,可以借用sprite或者mv作为容器进行巧妙的操作,代码如下,欢迎交流

import flash.text.TextField;
import flash.text.TextFormat;
import fl.transitions.Tween;
import fl.transitions.easing.Bounce;
import flash.display.Sprite;

var tt:TextField=newTextField();
var formate:TextFormat=new TextFormat();
formate.color=0xffff00;
formate.size=60;
formate.font="华文行楷";
tt.text="我爱你";
tt.setTextFormat(formate);
var bao:Sprite=new Sprite();
bao.addChild(tt);
stage.addChild(bao);
var tw:Tween=newTween(bao,"y",Bounce.easeOut,mouseY,300,6,true);    //注意Tween类
bao.addEventListener(MouseEvent.MOUSE_DOWN,startdrag);
bao.addEventListener(MouseEvent.MOUSE_UP,stopdrag);
function startdrag(e:MouseEvent):void

{
    tw.stop();
    bao.x=mouseX;
    bao.y=mouseY;
    bao.startDrag(true);
 }
function stopdrag(e:MouseEvent):void

{
    bao.stopDrag();
    var t:Tween=newTween(bao,"y",Bounce.easeOut,mouseY,300,6,true);
    var t1:Tween=newTween(bao,"x",Bounce.easeOut,mouseX,200,6,true);
    bao.addEventListener(MouseEvent.MOUSE_DOWN,stopMove);
    function stopMove(e:MouseEvent):void

   {
      t.stop();
      t1.stop();
      tw.stop();
   }
 }

猜你喜欢

转载自blog.csdn.net/w2014qian/article/details/46043195