Home > Tags > adobemax2009

adobemax2009

[Adobe MAX Japan 2009]ROXIK城戸さんのアレとTweensyで観覧車やってみた

すでにたくさんのレポートが投稿されてるみたいですが、
私もAdobe MAX 2日目参加してきました!!

感想をまとめようかと思いましたが、
私と全く同じセッションを選択されているll_koba_llさんのこの記事に書いてあるまとめが、
本当に感じたこととか一緒でうまくまとめてくださってるので、

まとめるの割愛します(あんなにうまく文まとまりましぇんw)。

受けたセッションの中でも、
すぐやってみたいと思ったのが
ROXIK城戸さんが実際にコードを書いて
日本語変数でものすごくわかりやすかった
ムービークリップの座標を視点で制御するアレ。

そこで記憶とメモを基に、
サンプルを作ってみることにした。

まず準備

真ん中基準点のMC「box_mc」を作成。
セッションの時のを忠実に再現w
aの文字は動くとぶるぶるするので分解してシェイプに。
プロパティでクラスにbox_mcと設定。

サンプルたち

視点の横移動

view sample

Actionscript:
  1. var 視点={x:0,y:0,angle:0,zoom:0};</p>
  2. <p>var ボックスたち=[];<br />
  3. var ポイントたち=[];</p>
  4. <p>ボックス追加();</p>
  5. <p>function ボックス追加() {<br />
  6.     var ポイント;<br />
  7.     var ボックス;</p>
  8. <p> for (var i=0; i&lt;20; i++) {<br />
  9.         ポイント={x:Math.random()*700,y:Math.random()*400};<br />
  10.         ポイントたち[i]=ポイント;</p>
  11. <p>  ボックス=new box_mc();<br />
  12.         ボックスたち[i]=ボックス;<br />
  13.         addChild(ボックス);<br />
  14.     }<br />
  15. }</p>
  16. <p>function モーション(e:Event) {<br />
  17.     視点.x+=2;<br />
  18. }</p>
  19. <p>function レンダリング(e:Event) {<br />
  20.     for (var i=0; i<ボックスたち.length; i++) {<br />
  21.         var ポイント=ポイントたち[i];<br />
  22.         var ボックス=ボックスたち[i];</p>
  23. <p>  ボックス.x=ポイント.x-視点.x;<br />
  24.         ボックス.y=ポイント.y-視点.y;<br />
  25.     }<br />
  26. }<br />
  27. addEventListener(Event.ENTER_FRAME,モーション);<br />
  28. addEventListener(Event.ENTER_FRAME,レンダリング);

視点の回転

view sample

Actionscript:
  1. var 視点={x:0,y:0,angle:0,zoom:0};</p>
  2. <p>var ボックスたち=[];<br />
  3. var ポイントたち=[];</p>
  4. <p>ボックス追加();</p>
  5. <p>function ボックス追加() {<br />
  6.     var ポイント;<br />
  7.     var ボックス;</p>
  8. <p> for (var i=0; i&lt;20; i++) {<br />
  9.         ポイント={x:Math.random()*700,y:Math.random()*400};<br />
  10.         ポイントたち[i]=ポイント;</p>
  11. <p>  ボックス=new box_mc();<br />
  12.         ボックスたち[i]=ボックス;<br />
  13.         addChild(ボックス);<br />
  14.     }<br />
  15. }</p>
  16. <p>function モーション(e:Event) {<br />
  17.     //ポイント.x+=2;<br />
  18.     //視点.x+=2;<br />
  19.     視点.angle+=0.01;<br />
  20. }</p>
  21. <p>function レンダリング(e:Event) {<br />
  22.     var cos=Math.cos(視点.angle);<br />
  23.     var sin=Math.sin(視点.angle);</p>
  24. <p> for (var i=0; i<ボックスたち.length; i++) {<br />
  25.         var ポイント=ポイントたち[i];<br />
  26.         var ボックス=ボックスたち[i];</p>
  27. <p>  var 視点からの差x=ポイント.x-視点.x;<br />
  28.         var 視点からの差y=ポイント.y-視点.y;</p>
  29. <p>  ボックス.x=視点からの差x*cos-視点からの差y*sin+350;<br />
  30.         ボックス.y=視点からの差x*sin+視点からの差y*cos+200;<br />
  31.     }<br />
  32. }<br />
  33. addEventListener(Event.ENTER_FRAME,モーション);<br />
  34. addEventListener(Event.ENTER_FRAME,レンダリング);

視点のズーム&回転

view sample

Actionscript:
  1. var 視点={x:0,y:0,angle:0,zoom:0};</p>
  2. <p>var ボックスたち=[];<br />
  3. var ポイントたち=[];</p>
  4. <p>ボックス追加();</p>
  5. <p>function ボックス追加() {<br />
  6.     var ポイント;<br />
  7.     var ボックス;</p>
  8. <p> for (var i=0; i&lt;20; i++) {<br />
  9.         ポイント={x:Math.random()*700,y:Math.random()*400};<br />
  10.         ポイントたち[i]=ポイント;</p>
  11. <p>  ボックス=new box_mc();<br />
  12.         ボックスたち[i]=ボックス;<br />
  13.         addChild(ボックス);<br />
  14.     }<br />
  15. }</p>
  16. <p>function モーション(e:Event) {<br />
  17.     //ポイント.x+=2;<br />
  18.     視点.angle-=0.01;<br />
  19.     視点.zoom+=0.01;<br />
  20. }</p>
  21. <p>function レンダリング(e:Event) {<br />
  22.     var cos=Math.cos(-視点.angle);<br />
  23.     var sin=Math.sin(-視点.angle);</p>
  24. <p> for (var i=0; i<ボックスたち.length; i++) {<br />
  25.         var ポイント=ポイントたち[i];<br />
  26.         var ボックス=ボックスたち[i];</p>
  27. <p>  var 視点からの差x=(ポイント.x-視点.x)*視点.zoom;</p>
  28. <p>  var 視点からの差y=(ポイント.y-視点.y)*視点.zoom;</p>
  29. <p>  ボックス.scaleX=ボックス.scaleY=視点.zoom;<br />
  30.         ボックス.x=視点からの差x*cos-視点からの差y*sin+350;<br />
  31.         ボックス.y=視点からの差x*sin+視点からの差y*cos+200;<br />
  32.     }<br />
  33. }<br />
  34. addEventListener(Event.ENTER_FRAME,モーション);<br />
  35. addEventListener(Event.ENTER_FRAME,レンダリング);

 

感想

忘れないうちにってことでとりあえずアップしてみたけど、
かなりセッションでやってたやつに近いサンプルができたかな?

自分もこのソースみてまた勉強しようw

今回の城戸さんのスライド公開ならへんかなぁ(*´ω`*)

関連する投稿

[Adobe MAX Japan 2009] ROXIK城戸さんのをアレをやってみる

すでにたくさんのレポートが投稿されてるみたいですが、
私もAdobe MAX 2日目参加してきました!!

感想をまとめようかと思いましたが、
私と全く同じセッションを選択されているll_koba_llさんのこの記事に書いてあるまとめが、
本当に感じたこととか一緒でうまくまとめてくださってるので、

まとめるの割愛します(あんなにうまく文まとまりましぇんw)。

受けたセッションの中でも、
すぐやってみたいと思ったのが
ROXIK城戸さんが実際にコードを書いて
日本語変数でものすごくわかりやすかった
ムービークリップの座標を視点で制御するアレ。

そこで記憶とメモを基に、
サンプルを作ってみることにした。

まず準備

真ん中基準点のMC「box_mc」を作成。
セッションの時のを忠実に再現w
aの文字は動くとぶるぶるするので分解してシェイプに。
プロパティでクラスにbox_mcと設定。

サンプルたち

視点の横移動

view sample

Actionscript:
  1. var 視点={x:0,y:0,angle:0,zoom:0};
  2. var ボックスたち=[];
  3. var ポイントたち=[];
  4. ボックス追加();
  5. function ボックス追加() {
  6.     var ポイント;
  7.     var ボックス;
  8.  for (var i=0; i&lt;20; i++) {
  9.         ポイント={x:Math.random()*700,y:Math.random()*400};
  10.         ポイントたち[i]=ポイント;
  11.   ボックス=new box_mc();
  12.         ボックスたち[i]=ボックス;
  13.         addChild(ボックス);
  14.     }
  15. }
  16. function モーション(e:Event) {
  17.     視点.x+=2;
  18. }
  19. function レンダリング(e:Event) {
  20.     for (var i=0; i<ボックスたち.length; i++) {
  21.         var ポイント=ポイントたち[i];
  22.         var ボックス=ボックスたち[i];
  23.   ボックス.x=ポイント.x-視点.x;
  24.         ボックス.y=ポイント.y-視点.y;
  25.     }
  26. }
  27. addEventListener(Event.ENTER_FRAME,モーション);
  28. addEventListener(Event.ENTER_FRAME,レンダリング);

視点の回転

view sample

Actionscript:
  1. var 視点={x:0,y:0,angle:0,zoom:0};
  2. var ボックスたち=[];
  3. var ポイントたち=[];
  4. ボックス追加();
  5. function ボックス追加() {
  6.     var ポイント;
  7.     var ボックス;
  8.  for (var i=0; i&lt;20; i++) {
  9.         ポイント={x:Math.random()*700,y:Math.random()*400};
  10.         ポイントたち[i]=ポイント;
  11.   ボックス=new box_mc();
  12.         ボックスたち[i]=ボックス;
  13.         addChild(ボックス);
  14.     }
  15. }
  16. function モーション(e:Event) {
  17.     //ポイント.x+=2;
  18.     //視点.x+=2;
  19.     視点.angle+=0.01;
  20. }
  21. function レンダリング(e:Event) {
  22.     var cos=Math.cos(視点.angle);
  23.     var sin=Math.sin(視点.angle);
  24.  for (var i=0; i<ボックスたち.length; i++) {
  25.         var ポイント=ポイントたち[i];
  26.         var ボックス=ボックスたち[i];
  27.   var 視点からの差x=ポイント.x-視点.x;
  28.         var 視点からの差y=ポイント.y-視点.y;
  29.   ボックス.x=視点からの差x*cos-視点からの差y*sin+350;
  30.         ボックス.y=視点からの差x*sin+視点からの差y*cos+200;
  31.     }
  32. }
  33. addEventListener(Event.ENTER_FRAME,モーション);
  34. addEventListener(Event.ENTER_FRAME,レンダリング);

視点のズーム&回転

view sample

Actionscript:
  1. var 視点={x:0,y:0,angle:0,zoom:0};
  2. var ボックスたち=[];
  3. var ポイントたち=[];
  4. ボックス追加();
  5. function ボックス追加() {
  6.     var ポイント;
  7.     var ボックス;
  8.  for (var i=0; i&lt;20; i++) {
  9.         ポイント={x:Math.random()*700,y:Math.random()*400};
  10.         ポイントたち[i]=ポイント;
  11.   ボックス=new box_mc();
  12.         ボックスたち[i]=ボックス;
  13.         addChild(ボックス);
  14.     }
  15. }
  16. function モーション(e:Event) {
  17.     //ポイント.x+=2;
  18.     視点.angle-=0.01;
  19.     視点.zoom+=0.01;
  20. }
  21. function レンダリング(e:Event) {
  22.     var cos=Math.cos(-視点.angle);
  23.     var sin=Math.sin(-視点.angle);
  24.  for (var i=0; i<ボックスたち.length; i++) {
  25.         var ポイント=ポイントたち[i];
  26.         var ボックス=ボックスたち[i];
  27.   var 視点からの差x=(ポイント.x-視点.x)*視点.zoom;
  28.   var 視点からの差y=(ポイント.y-視点.y)*視点.zoom;
  29.   ボックス.scaleX=ボックス.scaleY=視点.zoom;
  30.         ボックス.x=視点からの差x*cos-視点からの差y*sin+350;
  31.         ボックス.y=視点からの差x*sin+視点からの差y*cos+200;
  32.     }
  33. }
  34. addEventListener(Event.ENTER_FRAME,モーション);
  35. addEventListener(Event.ENTER_FRAME,レンダリング);

 

感想

忘れないうちにってことでとりあえずアップしてみたけど、
かなりセッションでやってたやつに近いサンプルができたかな?

自分もこのソースみてまた勉強しようw

今回の城戸さんのスライド公開ならへんかなぁ(*´ω`*)

関連する投稿

Home > Tags > adobemax2009

bookmark
nakanohito

あわせて読みたい
あわせて読みたいブログパーツ

Return to page top