Animate CC 2017にdrawTrianglesの不具合があるようです。


animate cc 2017(windows 10 on desktop)にアップデートしたところ、drawtrianglesに不具合が発生しました。ガーベッジが表示されるケースがあります。

animate cc 2015(windows 10 on desktop)では正常に動作していたものです。

問題切り分けのため、末尾のようなコードで検証を行ったところ、いくつかのことがわかりました。

 

1. パブリッシュのターゲットがflash player 23の場合は、問題なく動作する。

2. パブリッシュのターゲットがair 23.0 desktopの場合に不具合が発生するケースがある。

3. air 23.0 deskにおいて、イメージ・ローダーからのdrawでbitamapdataを作成した場合には問題が発生するが、

event.target.contentから取得した場合は正常に動作する。

 

どなたか、この不具合の解決方法をご存知の方がおられましたら、どうかご教示ください。よろしくお願いいたします。

 

以下、検証用のコードです。

 

//======================================================================================== =======================================

package {

    import flash.display.*;

    import flash.events.*;

    import flash.system.*;

    import flash.net.urlrequest;

    import flash.utils.*;

    import flash.geom.*;

    import flash.net.*;

    import flash.net.urlloader;

    import flash.net.urlloaderdataformat;

    import flash.net.urlrequest;

    import flash.ui.*;

 

    public class main extends sprite {

        private var image_loader:loader = new loader();

        private const url_image:string = "test.jpg";

 

        public function main() {

            image_loader.contentloaderinfo.addeventlistener(event.complete, oncomplete);

            image_loader.contentloaderinfo.addeventlistener(ioerrorevent.io_error, onerror);

            image_loader.load(new urlrequest(url_image));         

        }

        public function onerror(event:event):void {

            trace("image not found");

        }

     

        public function oncomplete(event:event):void {

         

            // my_bitmapdata via event.target.content ( namely bmd style -1 )

            var my_bitmapdata:bitmapdata = event.target.content.bitmapdata;

            var img_width:int = my_bitmapdata.width;

            var img_height:int = my_bitmapdata.height;

         

            // my_bitmapdata2 via draw image_loader ( nmaley bmd style-2 ) 

            var img_width2:int = image_loader.width;

            var img_height2:int = image_loader.height;

            var my_bitmapdata2:bitmapdata = new bitmapdata(img_width2, img_height2, true, 0x00ff0000);

            my_bitmapdata2.draw(image_loader, null, null, null, null, false);

 

         

            var output1:sprite = new sprite();

            var output2:sprite = new sprite();

            var output3:sprite = new sprite();

            var output4:sprite = new sprite();

            var output5:sprite = new sprite();

            var pos_y:int = 0;

            var space:int = 0;

            var skip:int = img_height + space;

            output1.x = 0; output1.y = pos_y; pos_y+= skip;

            output2.x = 0; output2.y = pos_y; pos_y+= skip;

            output3.x = 0; output3.y = pos_y; pos_y+= skip;

            output4.x = 0; output4.y = pos_y; pos_y+= skip;

         

            addchild(output1);

            addchild(output2);

            addchild(output3);

            addchild(output4);

         

            tstdraw(output1, my_bitmapdata,img_width, img_height,0);// test1 -> drawrect        bmd style-1 

            // 上記テスト問題なし

         

            tstdraw(output2, my_bitmapdata,img_width, img_height,1);// test2 -> drawtriangles    bmd style-1

            // 上記テスト問題なし

         

            tstdraw(output3, my_bitmapdata2,img_width2, img_height2,0);// test3 -> drawrect    bmd style-2 

            // 上記テスト問題なし

         

            tstdraw(output4, my_bitmapdata2,img_width2, img_height2,1);// test4 -> drawtriangles    bmd style-2

            // 上記テストは、パブリッシュのターゲットがair 23.0 desktopの場合に不具合が発生する

        }

     

 

        private function tstdraw(spr:sprite, bmd:bitmapdata, wd:int, ht:int, sel:int) {

 

            var uvt:vector.<number> =  vector.<number>([0,0,0,1,1,0,1,1]);

            var vert:vector.<number> = vector.<number>([0,0,0,ht,wd,0,wd,ht]);

            var ind:vector.<int> = vector.<int>([0,1,2,1,3,2]);

            spr.graphics.clear();

            spr.graphics.beginbitmapfill(bmd,null,false,false);

            switch (sel) {

                default:

                case 0:

                    spr.graphics.drawrect(0,0,wd,ht);

                    break;

                case 1:

                    spr.graphics.drawtriangles(vert, ind, uvt); 

                    break;

            }

            spr.graphics.endfill();

        }

     

    }

}



Animate CC(Character Animator CC含む)コミュニティフォーラム (Japan) でのその他のディスカッション


adobe

Comments

Popular posts from this blog

Adobe InDesign CC 2017 has stopped working

shape alpha vs layer alpha in cc library

Photoshop CC 2017 - Ruler Tool - Error 8007...