note.xさん有難う御座います!!(全ての原因は、第5引数のRectangleだった説)

  • このエントリーをはてなブックマークに追加
  • 0

以前のエントリで、MovieMaterialにスクリプトアニメーションを行うswfファイルやSpriteを放り込んだら挙動が酷い事になったという悩みを書き、note.xさんにTBを投げてみた所、有り難い事に検証&解決策を提示して頂けた。
解決法と言うのが、MovieMaterialの第5引数にRectangleを指定すると言う方法。分かってみれば当然指定すべき部分な気がする。これ見逃してた俺は何なの?バカなの?死ぬの?

と言うことで、早速試してみた結果のdemoがこちら。見事改善されている。
これで、次はFLARToolKitとの連携だな。

これが、新しい読み込みコード。

ActionScript

  1. var rmv:RSSMatrixView = new RSSMatrixView(new Rectangle(0, 0, 400, 300));
  2. rmv.addEventListener(Event.COMPLETE, function(e:Event):void
  3. {
  4.     var mt:MovieMaterial = new MovieMaterial(rmv, true, true, true, new Rectangle(0,0,400,300));
  5.     mt.doubleSided = true;
  6.     var p:Plane = new Plane(mt, 400, 300, 4, 4);
  7.     scene.addChild(p);
  8.     addEventListener(Event.ENTER_FRAME, function(e:Event):void
  9.     {
  10.         p.rotationY += 2;
  11.     });
  12.     startRendering();
  13. });
  14. /* この部分に、任意のRSSフィードのURLを格納する */
  15. rmv.load(new URLRequest("http://blog.tarotaro.org/feed"));
  16.  
  17. var loader:Loader = new Loader();
  18. loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void
  19. {
  20.     var mt:MovieMaterial = new MovieMaterial(loader, false, true, true,new Rectangle(0,0,640,480));
  21.     mt.doubleSided = true;
  22.     var p:Plane = new Plane(mt, 400, 300, 4, 4);
  23.     p.rotationY = 90;
  24.     scene.addChild(p);
  25.     addEventListener(Event.ENTER_FRAME, function(e:Event):void
  26.     {
  27.         p.rotationY += 2;
  28.     });
  29.     startRendering();
  30. });
  31. /* この部分に、RSSMatrixViewSample.asをコンパイルした結果出来たswfファイルのURLを格納する */
  32. loader.load(new URLRequest("rss.swf"));
  33. loader.scaleX = loader.scaleY = 400 / 640;

まず、newして読み込む方だが、こちらはMovieMaterialの第5引数にnew Rectangle(0,0,400,300)を指定するだけで上手くいった。で、swfファイルを読み込む方だが、こちらはswfファイルのサイズが640×480だったので、new Rectangle(0,0,640,480)とした上で、swfファイルを読み込んだLoaderのscaleXscaleYを変更し、400×300にしてみたり、new Rectangle(0,0,400,300)としてみたり、色々したんだが、どうも右端がわずかに切れている気がする。大きさ的には問題ないんだが、左に消えた文字が右から出てくるまでに、若干のタイムラグがある。
結論としては、swfファイルを読み込むよりはnewした方がいいという事だろう。
しかし、最大の驚きは、Rectangleをちゃんと設定したら、動きが滑らかになったと言う事だ。今までのカクカクした動きも、Rectangleの所為だったと言う事か。どういうことだ?

コードは、例によってSpark Projectにコミットした(と言うか更新)。

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク