精华内容
下载资源
问答
  • Tween

    2021-01-09 08:46:31
    <div><p>What is $.tween here: <pre><code> $.Tween.propHooks. </code></pre> <p>? <p>I recieve <pre><code> 6ec5ee48e1fc949f4b162af8ee98951f.js:368 Uncaught TypeError: Cannot read property '...
  • tween

    2018-05-06 16:26:18
    itween.color不能用于ngui的alpha自动作用于所有级别子对象对一个物体可以作用多个tweenalpha.begin只能作用于第一级子对象(为了实现作用于所有子对象,可以加panel)对一个物体只能生成一个,生成第二个会被覆盖,...
     itween.color
    不能用于ngui的alpha
    自动作用于所有级别子对象
    对一个物体可以作用多个

    tweenalpha.begin
    只能作用于第一级子对象(为了实现作用于所有子对象,可以加panel)
    对一个物体只能生成一个,生成第二个会被覆盖,使用delay函数延时也没用要用onFinish
    ==
    从一个对象取出所有子对象
    foreach(transform a in gameobject.transform)



    tweencolor不能用于uipanel的alpha,必须使用tweenalpha
    缩放scale,相对于unity 的pivot进行,如果物体远离pivot,就会产生位移
    加了uipanel之后,不会显示unity的三角坐标轴
    展开全文
  • Chained Tween

    2021-01-07 19:34:48
    <div><p>Changes to allow the chaining of tweens, as well as (un)pausing and stopping tween animations. A TweenEnd event is still triggered at the end of each individual animation. Here's an ...
  • tween interpolation

    2020-12-27 06:46:13
    <div><p>Right now vpaint can only create a linear interpolation. I suggest we have the ability to add a way to control the tween spacing. Here is how that looks like in both tween maker and cacani: ...
  • Tween delay

    2020-12-09 00:05:27
    <div><p>I have multiple tweens and I need to run a tween when another tween is completed and it seems the Tween doesn't take a delay prop, How I can manage the tweens order? <p>I tried position, ...
  • Tween colors

    2021-01-08 14:27:13
    <div><p>The me.Tween object right now can only handle simple numbers. It would be super useful to do the same for colors, especially with support for any CSS3 named color. I started on something ...
  • Tween Animation代码

    2016-12-07 07:59:09
    Tween Animation代码
  • Android Tween代码

    2016-12-06 14:02:31
    Android Tween代码
  • <div><p>I added additionally check in TWEEN.Tween.to, if the this.object is equal to this._valuesEnd. If not all excess parameters are removed.</p><p>该提问来源于开源项目:tweenjs/es6-tween</p>...
  • 关于tween

    2020-02-02 10:18:45
    关于tween tween.js 一个 让元素能够 平滑地执行动画效果的 js库 tween 只会给我们提供一个数字, 不要被局限了 使用 下载 ,引入 或 网络链接 缓动函数 普通的缓动函数 Linear: 线性 (匀速) 非普通的缓动函数 ...

    关于tween

    tween.js 一个 让元素能够 平滑地执行动画效果的 js库
    tween 只会给我们提供一个数字, 不要被局限了

    使用

    下载 ,引入 或 网络链接

    缓动函数

    普通的缓动函数

    • Linear: 线性 (匀速)

    非普通的缓动函数

    • Quad: 二次方缓动效果
    • Cubic: 三次方缓动效果
    • Quart: 四次方缓动效果
    • Quint: 五次方缓动效果
    • Sine: 正弦缓动效果
    • Expo: 指数缓动效果
    • Circ: 圆形缓动效果
    • Elastic: 指数衰减正弦曲线缓动函数
    • Back: 超过范围的三次方的缓动函数
    • Bounce:指数衰减的反弹曲线缓动函数

    以上每种缓动函数都有三种效果:(速率)
    这三种效果,不影响总时间,不影响总路程

    • easeIn : 加速
    • easeOut: 减速
    • easeInOut: 先加速后减速

    四个参数

    • t : 动画已经执行的时间
    • b : 初始的位置
    • c : 变化的值
    • d : 总时间 (总步数)

    	var box = document.getElementsByClassName("box")[0];
    
    	//准备四个参数
    	var t = 0;
    	var b = 0;
    	var c = 500;
    	var d = 100;
    
    	var time = setInterval(function () {
    		t++;
    
    		if(t >= d){
    			clearInterval(time);
    		}
    
    		box.style.left = Tween.Linear(t,b,c,d) + "px";
    		box.style.top = Tween.Linear(t,b,c,d) + "px";
    	},30);
    	
    
    • tween轮播图
    	
    	window.onload = function(){
    		var scren = document.getElementsByClassName("screen")[0]; 
    		var pics = document.getElementsByClassName("pics")[0];
    		var pic = document.getElementsByClassName("pic");
    				
    		var l = 0;
    		for (var i = 0;i < pic.length;i++) {
    			pic[i].style.left = l + "px";
    			l += 600;
    		}
    				
    		var index = 0;
    		var csroll;//正常单张滚动
    		var zt;//单张结束后暂停
    				 
    		zt = setInterval(function fun(){
    			clearInterval(csroll);
    			var t = 0;//起始时间
    			var b = -(index)*pic[0].clientWidth;//起始位置
    			var c = -pic[0].clientWidth;//移动距离
    			var d = 100;//移动时间
    					
    			function move(){	
    				t++;
    				if(t >= d ){
    					clearInterval(csroll);
    					index++;
    				}
    				pics.style.left = Tween.Linear(t,b,c,d) + "px";
    						
    				if(index == 4){
    					index = 0;
    					pics.style.left = "0px";
    				}
    			}
    			csroll = setInterval(move,10);//单张图片滚动效果
    			
    		},3000)
    				
    	}
    	
    
    展开全文
  • tween.js JavaScript tweening engine for easy animations, incorporating optimised Robert Penner's equations. Update Note In v18 the script you should include has moved from src/Tween.js to dist/...
  • Laya Tween

    2019-10-22 10:28:37
    游戏开发中的缓动动画是提升游戏UI体验的重要因素之一,比如对话框弹出和关闭、按钮动效出现于消失、道具飞入背包等,可以使用LayaAir引擎提供的Tween缓动类与Ease类实现。LayaAir引擎的Tween类与Ease类结合使用,能...
        

    游戏开发中的缓动动画是提升游戏UI体验的重要因素之一,比如对话框弹出和关闭、按钮动效出现于消失、道具飞入背包等,可以使用LayaAir引擎提供的Tween缓动类与Ease类实现。LayaAir引擎的Tween类与Ease类结合使用,能基本满足游戏开发的缓动效果。

    • Tween缓动类用来实现目标对象属性的缓动,比如目标对象的x轴或y轴的缓动距离等目标值的设置,以及缓动开始、停止、清理等设置。
    • Ease类用来定义大量的缓动函数以便实现Tween动画的具体缓动效果

    Tween

    结构 描述
    Package laya.utils.Tween
    Class Laya.Tween

    例如:水平来回移动图片

    4933701-3184cf96b292a136.png
    水平来回移动图片
    class Test {
        constructor() {
            Laya.init(Laya.Browser.clientWidth, Laya.Browser.clientHeight, Laya.WebGL);
            this.initStage();
            this.run();
        }
        initStage(){
            Laya.stage.alignH = Laya.Stage.ALIGN_CENTER;
            Laya.stage.alignV = Laya.Stage.ALIGN_MIDDLE;
            Laya.stage.scaleMode = Laya.Stage.SCALE_SHOWALL;
            Laya.stage.bgColor = "#000000";
        }
        run(){
            this.drawLine();
            this.createSprite("res/image/bomb.png");
            this.tweenTo();
        }
        tweenTo(){
            //从起始点移动到中心点
            //Laya.Tween.to(this.sprite, {x:Laya.stage.width>>1}, 3000);
            
            //从中心点移动到起始点
            this.sprite.x = 0;
            this.sprite.y = Laya.stage.height>>1;
            Laya.Tween.from(this.sprite, {x:Laya.stage.width>>1, y:Laya.stage.height>>1}, 3000);
        }
        drawLine(){
            let fromX = Laya.stage.width >> 1;
            let fromY = 0;
            let toX = Laya.stage.width >> 1;
            let toY = Laya.stage.height;
            let lineColor = "#111111";
            let lineWidth = 1;
            Laya.stage.graphics.drawLine(fromX, fromY, toX, toY, lineColor, lineWidth);
            
            fromX = 0;
            fromY = Laya.stage.height >> 1;
            toX = Laya.stage.width;
            toY = Laya.stage.height >> 1;
            Laya.stage.graphics.drawLine(fromX, fromY, toX, toY, lineColor, lineWidth);
        }
        createSprite(skin){
            this.sprite = new Laya.Sprite();
            this.sprite.loadImage(skin, Laya.Handler.create(this, function(){
                let texture = Laya.loader.getRes(skin);
                this.sprite.pivot(texture.width>>1, texture.height>>1);
                this.sprite.pos(texture.width>>1, Laya.stage.height>>1);
            }));
            Laya.stage.addChild(this.sprite);
            return this.sprite;
        }
    }
    //启动
    new Test();
    
    属性 描述
    repeat:number = 1 重播次数,默认为1,为0则表示无限循环播放。
    update:Handler 更新回调,缓动数值发生变化时,回调变化的值。
    存取器 描述
    set progress(v:number):void 设置当前执行比例
    方法 描述
    clear():void 停止并清理当前缓动
    complete():void 立即结束缓动并到终点
    from():Tween props属性缓动到当前状态
    pause():void 暂停缓动,可以通过resumerestart重新开始。
    recover():void 回收到对象池
    restart():void 重新开始暂停的缓动
    resume():void 恢复暂停的缓动
    setStartTime(startTime:number):void 设置开始时间
    to():Tween 缓动对象的props属性到目标值

    静态属性

    缓动类Tween提供了较多的方法,常用的是from()和to()方法,这两个方法的参数设置完全相同,但效果有所不同,from()是从缓动目标点向初始位置产生运动,即从缓动目标位置来看,to()是从初始位置向缓动目标位置产生运动,即到缓动目标位置去。

    //从`props`属性缓动到当前状态
    Laya.Tween.from(
      target:any, 
      props:any, 
      duration:number, 
      ease?:Function, 
      complete?:Handler, 
      delay?:number, 
      coverBefore?:boolean, 
      autoRecover?:boolean
    ):Tween
    
    // 缓动对象的props属性到目标值
    Laya.Tween.to(
      target:any, 
      props:any, 
      duration:number, 
      ease?:Function, 
      complete?:Handler, 
      delay?:number, 
      coverBefore?:boolean, 
      autoRecover?:boolean
    ):Tween
    
    参数 描述
    target:any 目标对象,即将更改属性值的对象。
    props:any 目标对象变化的属性值
    duration:number 耗费的毫秒时间
    ease:Function = null 缓动类型,默认为匀速运动。
    complete:Handler = null 结束回调函数
    delay:number = 0 延迟执行毫秒时间
    coverBefore:boolean = false 是否覆盖之前的缓动
    autoRecover:boolean = true 是否自动回收,默认为true表示缓动结束后自动回收到对象池。

    props属性

    props是目标对象改变产生缓动效果的属性,可以影响缓动效果的运动轨迹。目标对象的公共属性都可以进行设置,比如常见的坐标位置、透明度、旋转、轴心点、宽高等其它属性。

    ease 缓动函数

    Ease类定义了大量的缓动函数,以便实现Tween动画的具体缓动效果,即Tween缓动动画的具体动画类型由Ease进行指定。

    缓动函数 描述
    Laya.Ease.backIn 开始时往后运动然后反向朝目标移动
    Laya.Ease.backInOut 开始运动时是向后跟踪,再倒转方向并朝目标移动,稍微过冲目标再次倒转方向,回来朝目标移动。
    Laya.Ease.backOut 开始运动时朝目标移动,稍微过冲再倒转方向回来朝着目标。
    Laya.Ease.bounceIn 以零速率开始运动,执行时加速。类似球向地板跌落又弹起到逐渐减小的回弹运动。

    例如:逐字缓动掉落效果


    4933701-37eb1516abe38a8f.png
    逐字缓动掉落
    class Test {
        constructor() {
            Laya.init(Laya.Browser.clientWidth, Laya.Browser.clientHeight, Laya.WebGL);
            this.initStage();
            this.run();
        }
        initStage(){
            Laya.stage.alignH = Laya.Stage.ALIGN_CENTER;
            Laya.stage.alignV = Laya.Stage.ALIGN_MIDDLE;
            Laya.stage.scaleMode = Laya.Stage.SCALE_SHOWALL;
            Laya.stage.bgColor = "#000000";
        }
        run(){
            //文字区域宽度
            let width = 400;
            //分解字节串为字符并为其创建文本对象
            let str = "JunChow";
            let len = str.length;
            for(let i=0; i<len; i++){
                //为单个字符创建文本
                let txt = this.createText(str.charAt(i));
                //设置单个字符的坐标位置
                let x = (Laya.stage.width - width >> 1) +  (width / len * i);
                txt.x = x;
                //增加动效
                let y = Laya.stage.height >> 1;
                Laya.Tween.to(txt, {y:y}, 1000, Laya.Ease.elasticOut, null, i*1000);
            }
        }
        createText(char){
            let txt = new Laya.Text();
            txt.text = char;
            txt.font = "Impact";
            txt.fontSize = 100;
            txt.color = "#FFFFFF";
            Laya.stage.addChild(txt);
            return txt;
        }
    }
    //启动
    new Test();
    

    例如:加载图片并设置缓动效果

    4933701-f6fc46694ab259ed.png
    缓动
    class Test {
        constructor() {
            Laya.init(Laya.Browser.clientWidth, Laya.Browser.clientHeight, Laya.WebGL);
            this.initStage();
            this.run();
        }
        initStage(){
            Laya.stage.alignH = Laya.Stage.ALIGN_CENTER;
            Laya.stage.alignV = Laya.Stage.ALIGN_MIDDLE;
            Laya.stage.scaleMode = Laya.Stage.SCALE_SHOWALL;
            Laya.stage.bgColor = "#000000";
        }
        run(){
            //加载图片资源
            let url = "res/image/npc.png";
            Laya.loader.load(url, Laya.Handler.create(this, function(url){
                //创建并加载图片到舞台显示
                let img = new Laya.Image();
                img.loadImage(url);
                Laya.stage.addChild(img);
                //缓动对象的props属性到目标值
                Laya.Tween.to(
                    //缓动对象
                    img, 
                    //变化属性目标值
                    {x:Laya.stage.width - img.texture.width>>1, y:Laya.stage.height-img.texture.height>>1}, 
                    //花费的毫秒时间
                    3000, 
                    //缓动类型
                    Laya.Ease.elasticOut, 
                    //结束后回调函数
                    Laya.Handler.create(this, function(){
                        //创建文本
                        let txt = new Laya.Text();
                        txt.font = "Impact";
                        txt.fontSize = 80;
                        txt.color = "#FFFF00";
                        txt.stroke = 1;
                        txt.strokeColor = "#EEEEEE";
                        txt.text = "Game Start";
                        txt.pos(Laya.stage.width-txt.width>>1, Laya.stage.height-txt.height>>1);
                        Laya.stage.addChild(txt);
                    }), 
                    //延迟执行毫秒时间
                    1000
                )
            },[url]));
        }
    }
    //启动
    new Test();
    

    封装类库

    使用TypeScript封装动画效果类库

    export default class Effect{
        private static _instance:Effect;
        public static getInstance():Effect{
            if(!this._instance){
                this._instance = new Effect();
            }
            return this._instance;
        }
        private _constructor(){
    
        }
        /**
         * 类似苹果系统上图标上下抖动的效果
         * @param target {Sprite} 抖动对象
         * @param initY {number} 抖动对象初始Y轴坐标位置
         * @param callback {Function} 抖动完毕后回调函数
         * @param thisObj {any} 回调函数this对象
         */
        shake(target, initY, callback, thisObj){
            //抖动频率[时间, 移动距离]
            let data = [[20, 300], [15, 300], [10, 300], [5, 300]];
            let index = 0;
            //执行抖动
            toShake();
            function toShake(){
                if(index >= data.length){
                    callback && callback.apply(thisObj, []);
                }else{
                    let prop = {"y":initY - data[index][0]};
                    let duration = data[index][1];
                    let ease = null;
                    Laya.Tween.to(target, prop, duration, ease, Laya.Handler.create(null, ()=>{
                        prop = {"y": initY};
                        Laya.Tween.to(target, prop, duration, ease, Laya.Handler.create(null, ()=>{
                            ++index;
                            toShake();
                        }));
                    }));
                }
            }
        }
        /**
         * 向上移动淡出效果
         * @param target {Sprite} 淡出对象
         * @param duration {number} 淡出时长单位毫秒
         * @param ease {Function} 淡出函数
         * @param callback {Function} 淡出完成回调函数
         * @param thisObj {any} 回调函数this对象
         * @param args {Array} 回调传参
         */
        flowout(target, duration=500, ease=null, callback=null, thisObj=null, args=null){
            let props = {y:target.y-150, alpha:0};
            if(callback){
                Laya.Tween.to(target, props, duration, ease, Laya.Handler.create(thisObj, callback, args));
            }else{
                Laya.Tween.to(target, props, duration, ease, Laya.Handler.create(target, target.removeSelf, args));
            }
        }
        /**
         * 文本数字增减渐变效果
         * @param begin {number} 开始的数值
         * @param end {number} 渐变到的数值
         * @param callback {Function} 淡出完成回调函数
         * @param thisObj {any} 回调函数的this对象
         */
        flownum(begin, end, callback, thisObj=null){
            let diff = Math.abs(end - begin);
            if(diff <= 0){
                return;
            }
    
            let cur = begin;
            let per = diff / (end - begin);
            
            let delay = 30;
            let timer = new Laya.Timer();
            timer.loop(delay, this, onLoop);
            function onLoop(){
                cur += per;
                --diff;
                if(diff < 0){
                    timer.clearAll(this);
                    timer = null;
                }else{
                    callback && callback.apply(thisObj, [cur]);
                }
            }
        }
        /**
         * 闪烁
         * @param target {Sprite} 目标节点对象
         * @param duration {number} 闪烁频率
         */
        flicker(target, duration=700){
            target.alpha = 1;
            let props = {"alpha": 0};
            let ease = null;
            Laya.Tween.to(target, props, duration, ease, Laya.Handler.create(null, function(){
                props = {"alpha": 1};
                Laya.Tween.to(target, props, duration, ease, Laya.Handler.create(this, this.flicker, [target]));
            }.bind(this)));
        }
        /**
         * 停止动画 节点归位
         * 停止动画后容器位置初始化到原始位置,避免可能出现位置改变引起的bug。
         * @param target {Sprite} 目标节点
         * @param x {number} X轴坐标位置
         * @param y {number} Y轴坐标位置
         */
        clear(target, x=null, y=null){
            Laya.Tween.clearAll(target);
            if(x!==null && y!==null){
                target.pos(x, y);
            }
        }
        /**
         * 点击放大缩小
         * @param target {Sprite} 目标节点
         * @param fix 若中心点不是锚点则需修改位置
         */
        clickCubicInOut(target, fix=true){
            if(!target){
                return;
            }
            target.off(Laya.Event.MOUSE_DOWN, this, this.onCubicInOut);
            target.on(Laya.Event.MOUSE_DOWN, this, this.onCubicInOut, [target, fix]);
        }
        clearCubicInOut(target){
            if(!target){
                return;
            }
            target.off(Laya.Event.MOUSE_DOWN, this, this.onCubicInOut);
        }
        onCubicInOut(target, fix){
            if(target._aniButtonEffect){
                return;
            }
            target._aniButtonEffect = true;
    
            let x, y;
            if(fix){
                x = target.x;
                y = target.y;
            }else{
                x = target.x - ((target.width * 0.1) >> 1);
                y = target.y - ((target.height * 0.1) >> 1);
            }
    
            let scaleX = target.scaleX;
            let scaleY = target.scaleY;
    
            let props = {x:x, y:y, scaleX:scaleX * 1.1, scaleY:scaleY * 1.1};
            let duration = 100;
            let ease = null;
            Laya.Tween.to(target, props, duration, ease, Laya.Handler.create(this, ()=>{
                props.scaleX = scaleX;
                props.scaleY = scaleY;
                Laya.Tween.to(target, props, duration ,ease, Laya.Handler.create(this, ()=>{
                    if(!target.destroyed){
                        target._aniButtonEffect = false;
                    }
                }));
            }));
        }
    }
    
    展开全文
  • JS Tween 颜色渐变

    2020-10-30 02:58:32
    从我写的as tween改写的,基本功能跟as里面写的一样,只是没有扩展特定功能的接口(比如alpha2,move2,size2,color2等接口,这些在as tween里面都有实现)。
  • Egret Tween

    2018-06-15 16:46:00
    1、egret.Tween.get(),激活一个对象,对其添加 Tween 动画 2、to(),将指定对象的属性修改为指定值  egret.Tween.get(this.gold,{loop:true}).to({x:343,alpha:1},500);  {loop:true}是循环此操作  to({x:...

    最近开始接触Egret,其实也就是为了写一些小的特效

    1、egret.Tween.get() ,激活一个对象,对其添加 Tween 动画

    2、to() ,将指定对象的属性修改为指定值

      egret.Tween.get(this.gold,{loop:true}).to({x:343,alpha:1},500);

      {loop:true}是循环此操作

      to({x:343,alpha:1},500)在0.5秒内将x坐标设为343px,透明度设为1

    3、call() ,执行回调函数

      egret.Tween.get(this.gold,{loop:true}).to({x:343,alpha:1},500).wait(2000).call(()=>{
        console.log("kkkk");
      });

      .wait(2000) 是当完成to()的动画后等2秒钟

      .call()是等2秒钟然后执行回调函数。打印“kkkk”

    总之,js里面的哪些动画啥的,这里都可以用

    转载于:https://www.cnblogs.com/eyed/p/9188031.html

    展开全文
  • I think it miss a callback between view and tween egress. We spoke a little about that on the ml and irc but in the end i don't know if it's a feature that will not be accepted or if it just ...
  • Tween.set

    2020-12-09 00:05:27
    <div><p>Is there a way to <code>set</code> a property without using a <code>to</code> Tween with a duration of 0? <p>So this: <p><code><Tween to={<!-- -->{ transformOrigin:"50% 50%" }} ...
  • Better Tween integration

    2021-01-08 14:27:07
    <p>Background: <code>me.Tween</code> is easy to use because it adds itself to the world container when created. For this reason, it is kind of "heavy" and disconnected from the parent object ...
  • Tween Animation示例代码

    2016-12-06 10:36:48
    Tween Animation示例代码
  • Tween动画

    2017-06-20 09:30:04
    动画:Tween动画(Animation)、Frame动画(AnimationDrawable)、属性动画(Animator)Tween动画通过对一个视图不断的进行平移、旋转、放大、缩小、透明变换所形成的动画透明度动画//创建动画对象 AlphaAnimation ...
  • Tween strings?

    2020-11-29 22:19:58
    <div><p>In some cases strings need to be tweened e.g. rgb or path strings. It seems I would have to override the <code>_getTweeningValue</code> function.</p><p>该...chenglou/react-tween-state</p></div>
  • tween-fn-源码

    2021-03-17 21:52:44
    与现有的替代方案(如GSAP或animejs , tween-fn不假设您的应用程序有任何内容,因此,它不了解DOM或您偏爱的任何JS框架的任何信息,这使您可以非常清楚地了解自己的应用重新尝试实现 安装 yarn add tween-fn 或者...
  • Tween 动画

    2017-04-18 17:47:53
    网上有人比较各tween开源包的效率:从执行效率上来说,TweenLite》TweenMax》Tweener》Tween,而且前2个比后2个在大型运算中快不止一点点。  大概就是这么个逻辑: time:缓动经历过的时间 beforeMove:起始...
  • add cc.tween

    2020-12-01 00:54:39
    * add cc.tween to simplify action creation <h3>Use Cases <pre><code>js // run a sequence action // node.scale === 1 var node = cc.find('Canvas/cocos'); cc.tween(node) .to(1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,176
精华内容 2,070
关键字:

Tween