SlideShare a Scribd company logo
1 of 55
Download to read offline
TweenJS for Everything




                                 2013/03/15 yomotsu@PixelGrid, Inc.

Friday, March 15, 13
Who?

       小山田 晃浩
       FrontEnd Engineer at PixelGrid
       Twitter@yomotsu




Friday, March 15, 13
TweenJS?




Friday, March 15, 13
Friday, March 15, 13
Friday, March 15, 13
• アニメーション
                       animation


                       • トゥイーン
                       tween


                       • イージング
                       easing




Friday, March 15, 13
TweenJS with EaselJS




                       demo

Friday, March 15, 13
Usage
       1. Tween インスタンスを取得
               get a Tween instance

       2. トゥイーン、ディレイ、コールバックを追加
               then, add tween, delay or callback as needed




Friday, March 15, 13
1. get a Tween instance
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( behaves as "new createjs.Tween()"
         this 2000 )
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
1. get a Tween instance
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )          EaselJS DisplayObject
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
2. chain, chain, and chain!
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: tweeny: 300 }, 1000, createjs.Ease.quadOut )
         adding 100,
      .wait( 2000 )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
2. chain, chain, and chain!
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: target y: 300 }, 1000, createjs.Ease.quadOut )
                 100, value for this tween
      .wait( 2000 )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
2. chain, chain, and chain!
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
                         duration
      .wait( 2000 )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
2. chain, chain, and chain!
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
                                 easing
      .wait( 2000 )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
2. chain, chain, and chain!
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 delay
         2000ms )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
2. chain, chain, and chain!
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
              multiple values
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
2. chain, chain, and chain!
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
         callback
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
conclusion
      createjs.Tween.get( nyan )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
conclusion
      createjs.Tween.get( nyan, { loop : true } )
      .to( { x: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut )
      .wait( 2000 )
      .call( function() {
        console.log( 'done!' );
      } );




Friday, March 15, 13
How dose it work?




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
How dose it work?
       1. Tween のインスタンスを作ると...
                When you created an instance of Tween...

       2. TweenJS が登録されたオブジェクトの値を変更
                TweenJS will change value of applied object

       3. EaselJS がオブジェクトを表示
                then, EaselJS will render the object using changed value




Friday, March 15, 13
TweenJS は
       オブジェクトの値を変更しているだけ
       TweenJS is just changing value of the object




Friday, March 15, 13
TweenJS can be used
    with other libs




Friday, March 15, 13
TweenJS with Paper.js




                       demo

Friday, March 15, 13
TweenJS with three.js




                       demo

Friday, March 15, 13
TweenJS with SVG DOM




                       demo

Friday, March 15, 13
TweenJS can get along
       with others!




Friday, March 15, 13
learn APIs




                       http://www.createjs.com/Docs/
                       TweenJS/modules/TweenJS.html

Friday, March 15, 13
conclusion




Friday, March 15, 13
conclusion
       • TweenJS はオブジェクトの値を変えているだけ
           TweenJS is just changing value of an object

       • いろいろな表示系ライブラリーと組み合わせ可能
           TweenJS can be used in combination with several libs

       • ただし、TweenJS は EaselJS に依存している
           TweenJS is dependent on EaselJS
           TweenJSの機能だけを利用したくても EaselJS を読みこまなくてはいけない




Friday, March 15, 13
in addition...




Friday, March 15, 13
tween.js




                       https://github.com/sole/tween.js/

Friday, March 15, 13
tween.js
      var obj = {
        x : 100,
        y : 100
      }

      var t1 = new TWEEN.Tween( obj )
      .to( { x: 300 }, 1000 )
      .easing( TWEEN.Easing.Quadratic.Out );

      var t2 = new TWEEN.Tween( obj )
      .to( { x: 100, y : 300 }, 1000 )
      .easing( TWEEN.Easing.Quadratic.Out ).delay( 2000 );

      var t3 = new TWEEN.Tween( obj )
      .to( { x: 100, y : 100 }, 1000 )
      .easing( TWEEN.Easing.Quadratic.Out ).delay( 2000 )
      .onComplete( function () {
        console.log( 'done!' );} );

      t1.chain( t2 );
      t2.chain( t3 );

      t1.start();




Friday, March 15, 13
tween.js




                       demo

Friday, March 15, 13
jQuery can also do that similar
      var obj = {
         x : 100,
         y : 100
      };

      $.when( $( obj ).animate( { x : 300 }, 1000 ) )
      .then( $( obj ).delay( 2000 ) )
      .then( $( obj ).animate( { x : 100, y : 300 }, 1000 ) )
      .then( $( obj ).delay( 2000 ) )
      .then( $( obj ).animate( { x : 100, y : 100 }, 1000 ) )
      .then( $( obj ).delay( 2000 ) )
      .then( function () {
        console.log( 'done' );
      } );


Friday, March 15, 13
jQuery can also do that similar




                       demo

Friday, March 15, 13
conclusion




Friday, March 15, 13
難度         機能             依存
                        easily    features      depending on




       TweenJS          簡単!        充実!       EaselJSに依存

                                   充実!
        tween.js       すこし複雑                      なし!
                                 (特にevent)


                                             必要に応じて jQuery
          jQuery        簡単!      それなり         Easing Plugin




Friday, March 15, 13
Friday, March 15, 13
購読開始から30日間無料

                         (月額840円)



Friday, March 15, 13
CodeGrid

                       www.codegrid.net



Friday, March 15, 13
Question?
                       @yomotsu




Friday, March 15, 13

More Related Content

Viewers also liked (8)

sistemes econòmics
sistemes econòmicssistemes econòmics
sistemes econòmics
 
Don guidance for_unofficial_posts_-_explained
Don guidance for_unofficial_posts_-_explainedDon guidance for_unofficial_posts_-_explained
Don guidance for_unofficial_posts_-_explained
 
This week in mcfp june 11 2010
This week in mcfp june 11 2010This week in mcfp june 11 2010
This week in mcfp june 11 2010
 
Force weekly 11 march 2011
Force weekly 11 march 2011Force weekly 11 march 2011
Force weekly 11 march 2011
 
Pts step by step guide
Pts step by step guidePts step by step guide
Pts step by step guide
 
Teknoaula 5 - novedades 2015
Teknoaula 5 - novedades 2015Teknoaula 5 - novedades 2015
Teknoaula 5 - novedades 2015
 
Taller formativo - base de datos de visitantes
Taller formativo - base de datos de visitantesTaller formativo - base de datos de visitantes
Taller formativo - base de datos de visitantes
 
Teknoaula 4 - Conceptos generales sobre internet y redes sociales
Teknoaula 4 - Conceptos generales sobre internet y redes socialesTeknoaula 4 - Conceptos generales sobre internet y redes sociales
Teknoaula 4 - Conceptos generales sobre internet y redes sociales
 

TweenJS for Everything

  • 1. TweenJS for Everything 2013/03/15 yomotsu@PixelGrid, Inc. Friday, March 15, 13
  • 2. Who? 小山田 晃浩 FrontEnd Engineer at PixelGrid Twitter@yomotsu Friday, March 15, 13
  • 6. • アニメーション animation • トゥイーン tween • イージング easing Friday, March 15, 13
  • 7. TweenJS with EaselJS demo Friday, March 15, 13
  • 8. Usage 1. Tween インスタンスを取得 get a Tween instance 2. トゥイーン、ディレイ、コールバックを追加 then, add tween, delay or callback as needed Friday, March 15, 13
  • 9. 1. get a Tween instance createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( behaves as "new createjs.Tween()" this 2000 ) .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 10. 1. get a Tween instance createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) EaselJS DisplayObject .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 11. 2. chain, chain, and chain! createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: tweeny: 300 }, 1000, createjs.Ease.quadOut ) adding 100, .wait( 2000 ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 12. 2. chain, chain, and chain! createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: target y: 300 }, 1000, createjs.Ease.quadOut ) 100, value for this tween .wait( 2000 ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 13. 2. chain, chain, and chain! createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) duration .wait( 2000 ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 14. 2. chain, chain, and chain! createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) easing .wait( 2000 ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 15. 2. chain, chain, and chain! createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 delay 2000ms ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 16. 2. chain, chain, and chain! createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) multiple values .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 17. 2. chain, chain, and chain! createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) callback .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 18. conclusion createjs.Tween.get( nyan ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 19. conclusion createjs.Tween.get( nyan, { loop : true } ) .to( { x: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ) .wait( 2000 ) .call( function() { console.log( 'done!' ); } ); Friday, March 15, 13
  • 20. How dose it work? Friday, March 15, 13
  • 21. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 22. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 23. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 24. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 25. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 26. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 27. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 28. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 29. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 30. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 31. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 32. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 33. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 34. How dose it work? 1. Tween のインスタンスを作ると... When you created an instance of Tween... 2. TweenJS が登録されたオブジェクトの値を変更 TweenJS will change value of applied object 3. EaselJS がオブジェクトを表示 then, EaselJS will render the object using changed value Friday, March 15, 13
  • 35. TweenJS は オブジェクトの値を変更しているだけ TweenJS is just changing value of the object Friday, March 15, 13
  • 36. TweenJS can be used with other libs Friday, March 15, 13
  • 37. TweenJS with Paper.js demo Friday, March 15, 13
  • 38. TweenJS with three.js demo Friday, March 15, 13
  • 39. TweenJS with SVG DOM demo Friday, March 15, 13
  • 40. TweenJS can get along with others! Friday, March 15, 13
  • 41. learn APIs http://www.createjs.com/Docs/ TweenJS/modules/TweenJS.html Friday, March 15, 13
  • 43. conclusion • TweenJS はオブジェクトの値を変えているだけ TweenJS is just changing value of an object • いろいろな表示系ライブラリーと組み合わせ可能 TweenJS can be used in combination with several libs • ただし、TweenJS は EaselJS に依存している TweenJS is dependent on EaselJS TweenJSの機能だけを利用したくても EaselJS を読みこまなくてはいけない Friday, March 15, 13
  • 45. tween.js https://github.com/sole/tween.js/ Friday, March 15, 13
  • 46. tween.js var obj = { x : 100, y : 100 } var t1 = new TWEEN.Tween( obj ) .to( { x: 300 }, 1000 ) .easing( TWEEN.Easing.Quadratic.Out ); var t2 = new TWEEN.Tween( obj ) .to( { x: 100, y : 300 }, 1000 ) .easing( TWEEN.Easing.Quadratic.Out ).delay( 2000 ); var t3 = new TWEEN.Tween( obj ) .to( { x: 100, y : 100 }, 1000 ) .easing( TWEEN.Easing.Quadratic.Out ).delay( 2000 ) .onComplete( function () { console.log( 'done!' );} ); t1.chain( t2 ); t2.chain( t3 ); t1.start(); Friday, March 15, 13
  • 47. tween.js demo Friday, March 15, 13
  • 48. jQuery can also do that similar var obj = { x : 100, y : 100 }; $.when( $( obj ).animate( { x : 300 }, 1000 ) ) .then( $( obj ).delay( 2000 ) ) .then( $( obj ).animate( { x : 100, y : 300 }, 1000 ) ) .then( $( obj ).delay( 2000 ) ) .then( $( obj ).animate( { x : 100, y : 100 }, 1000 ) ) .then( $( obj ).delay( 2000 ) ) .then( function () { console.log( 'done' ); } ); Friday, March 15, 13
  • 49. jQuery can also do that similar demo Friday, March 15, 13
  • 51. 難度 機能 依存 easily features depending on TweenJS 簡単! 充実! EaselJSに依存 充実! tween.js すこし複雑 なし! (特にevent) 必要に応じて jQuery jQuery 簡単! それなり Easing Plugin Friday, March 15, 13
  • 53. 購読開始から30日間無料 (月額840円) Friday, March 15, 13
  • 54. CodeGrid www.codegrid.net Friday, March 15, 13
  • 55. Question? @yomotsu Friday, March 15, 13