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

このエントリをはてなブックマークに追加このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加このエントリをkwoutに追加
2008年9月18日 木曜日23:23:28

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

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

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

var rmv:RSSMatrixView = new RSSMatrixView(new Rectangle(0, 0, 400, 300));
rmv.addEventListener(Event.COMPLETE, function(e:Event):void
{
    var mt:MovieMaterial = new MovieMaterial(rmv, true, true, true, new Rectangle(0,0,400,300));
    mt.doubleSided = true;
    var p:Plane = new Plane(mt, 400, 300, 4, 4);
    scene.addChild(p);
    addEventListener(Event.ENTER_FRAME, function(e:Event):void
    {
        p.rotationY += 2;
    });
    startRendering();
});
/* この部分に、任意のRSSフィードのURLを格納する */
rmv.load(new URLRequest("http://blog.tarotaro.org/feed"));

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void
{
    var mt:MovieMaterial = new MovieMaterial(loader, false, true, true,new Rectangle(0,0,640,480));
    mt.doubleSided = true;
    var p:Plane = new Plane(mt, 400, 300, 4, 4);
    p.rotationY = 90;
    scene.addChild(p);
    addEventListener(Event.ENTER_FRAME, function(e:Event):void
    {
        p.rotationY += 2;
    });
    startRendering();
});
/* この部分に、RSSMatrixViewSample.asをコンパイルした結果出来たswfファイルのURLを格納する */
loader.load(new URLRequest("rss.swf"));
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にコミットした(と言うか更新)。

Trackbacks (1)

  1. WakaZ ` interactive 3DCG and FLASH
    PV3D | MovieMaterial‚ʼn摜‚ª‚¸‚ê‚é... Papervsion3D‚ÅPlane‚ÌMaterial‚ÉMovieMateria......

トラックバック URL :

コメントをどうぞ

HTML convert time: 1.123 sec.