Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TweenJS for Everything
Search
yomotsu
March 15, 2013
Programming
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TweenJS for Everything
yomotsu
March 15, 2013
More Decks by yomotsu
See All by yomotsu
three.jsとRapierでレースゲームが3日でできた話
yomotsu
0
900
PBR in three.js
yomotsu
1
1.4k
dialog要素でつくるモーダルダイアログ
yomotsu
0
1.1k
IE to Edge
yomotsu
1
410
A Camera Control Library for three.js
yomotsu
1
1.5k
Let’s try AR on mobile Web with <model-viewer>
yomotsu
0
600
WebXR: Beyond WebGL
yomotsu
2
1.9k
Non-DOM components with WebGL in Vue.js
yomotsu
5
13k
WebGL Libs for WebApp Frameworks
yomotsu
4
7.9k
Other Decks in Programming
See All in Programming
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
740
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
410
AIが無かった頃の素敵な出会いの話
codmoninc
1
440
What's New in Android 2026
veronikapj
0
260
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
160
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
510
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
610
リアルな遅延を測る仕様
kota_yata
1
110
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
120
プロポーザルを書いてもらう
pvcresin
0
550
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
520
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
5
1.9k
Featured
See All Featured
HDC tutorial
michielstock
2
790
Discover your Explorer Soul
emna__ayadi
2
1.3k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The browser strikes back
jonoalderson
0
1.5k
Speed Design
sergeychernyshev
33
2k
Un-Boring Meetings
codingconduct
0
390
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
490
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
650
Abbi's Birthday
coloredviolet
3
9.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Scaling GitHub
holman
464
140k
Transcript
5XFFO+4GPS&WFSZUIJOH 2013/03/15 yomotsu@PixelGrid, Inc.
খࢁాߊߒ 'SPOU&OE&OHJOFFSBU1JYFM(SJE 5XJUUFS!ZPNPUTV 8IP
5XFFO+4
None
None
w Ξχϝʔγϣϯ BOJNBUJPO w τΡΠʔϯ UXFFO w Πʔδϯά FBTJOH
5XFFO+4XJUI&BTFM+4 EFNP
6TBHF 5XFFOΠϯελϯεΛऔಘ HFUB5XFFOJOTUBODF τΡΠʔϯɺσΟϨΠɺίʔϧόοΫΛՃ UIFO BEEUXFFO EFMBZPSDBMMCBDLBTOFFEFE
HFUB5XFFOJOTUBODF 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!' ); } ); this behaves as "new createjs.Tween()"
HFUB5XFFOJOTUBODF 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!' ); } ); EaselJS DisplayObject
DIBJO DIBJO BOEDIBJO 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!' ); } ); adding tween
DIBJO DIBJO BOEDIBJO 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!' ); } ); target value for this tween
DIBJO DIBJO BOEDIBJO 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!' ); } ); duration
DIBJO DIBJO BOEDIBJO 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!' ); } ); easing
DIBJO DIBJO BOEDIBJO 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!' ); } ); 2000ms delay
DIBJO DIBJO BOEDIBJO 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!' ); } ); multiple values
DIBJO DIBJO BOEDIBJO 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!' ); } ); callback
DPODMVTJPO 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!' ); } );
DPODMVTJPO 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!' ); } );
)PXEPTFJUXPSL
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
)PXEPTFJUXPSL 5XFFOͷΠϯελϯεΛ࡞Δͱ 8IFOZPVDSFBUFEBOJOTUBODFPG5XFFO 5XFFO+4͕ొ͞ΕͨΦϒδΣΫτͷΛมߋ 5XFFO+4XJMMDIBOHFWBMVFPGBQQMJFEPCKFDU &BTFM+4͕ΦϒδΣΫτΛදࣔ UIFO
&BTFM+4XJMMSFOEFSUIFPCKFDUVTJOHDIBOHFEWBMVF
5XFFO+4 ΦϒδΣΫτͷΛมߋ͍ͯ͠Δ͚ͩ 5XFFO+4JTKVTUDIBOHJOHWBMVFPGUIFPCKFDU
5XFFO+4DBOCFVTFE XJUIPUIFSMJCT
5XFFO+4XJUI1BQFSKT EFNP
5XFFO+4XJUIUISFFKT EFNP
5XFFO+4XJUI47(%0. EFNP
5XFFO+4DBOHFUBMPOH XJUIPUIFST
MFBSO"1*T IUUQXXXDSFBUFKTDPN%PDT 5XFFO+4NPEVMFT5XFFO+4IUNM
DPODMVTJPO
DPODMVTJPO w 5XFFO+4ΦϒδΣΫτͷΛม͍͑ͯΔ͚ͩ 5XFFO+4JTKVTUDIBOHJOHWBMVFPGBOPCKFDU w ͍Ζ͍ΖͳදࣔܥϥΠϒϥϦʔͱΈ߹ΘͤՄೳ 5XFFO+4DBOCFVTFEJODPNCJOBUJPOXJUITFWFSBMMJCT w ͨͩ͠ɺ5XFFO+4&BTFM+4ʹґଘ͍ͯ͠Δ 5XFFO+4JTEFQFOEFOUPO&BTFM+4
5XFFO+4ͷػೳ͚ͩΛར༻ͨͯ͘͠&BTFM+4ΛಡΈ͜·ͳ͍͚ͯ͘ͳ͍
JOBEEJUJPO
UXFFOKT IUUQTHJUIVCDPNTPMFUXFFOKT
UXFFOKT 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();
UXFFOKT EFNP
K2VFSZDBOBMTPEPUIBUTJNJMBS 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' ); } );
K2VFSZDBOBMTPEPUIBUTJNJMBS EFNP
DPODMVTJPO
FBTJMZ ػೳ GFBUVSFT ґଘ EFQFOEJOHPO 5XFFO+4 UXFFOKT K2VFSZ ؆୯
ॆ࣮ &BTFM+4ʹґଘ ͢͜͠ෳࡶ ॆ࣮ ಛʹFWFOU ͳ͠ ؆୯ ͦΕͳΓ ඞཁʹԠͯ͡K2VFSZ &BTJOH1MVHJO
None
ߪಡ։͔࢝Βؒແྉ ֹ݄ԁ
$PEF(SJE XXXDPEFHSJEOFU
2VFTUJPO !ZPNPUTV