In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

何周もbeginFillし続けたらどうなるか

重なる部分は消える
Get Adobe Flash player
by undo 01 Mar 2011

    Talk

    9re at 02 Mar 2011 05:30
    パスの内外判定は偶奇判定が標準的なアルゴリズムですね http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/GraphicsPathWinding.html
    kacchan6 at 02 Mar 2011 06:35
    これで以前、製品で「使っているうちに、だんだん重くなる」というバグをやらかしました。 endFillやってましたが、Graphicsのclear漏れが原因で、アルファなしのベタ塗りで気づきませんでした。
    Embed
package {
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        private var _canvas:Sprite;
        private var _radius:Number = 200;
        private var _radian:Number = 0;
        public function FlashTest() {
            // write as3 code here..
            _canvas = addChild(new Sprite()) as Sprite;
            _canvas.graphics.lineStyle(1);
            _canvas.graphics.beginFill(0xcc0000);
            _canvas.x = stage.stageWidth/2;
            _canvas.y = stage.stageHeight/2;
            _canvas.graphics.moveTo(Math.cos(_radian)*_radius, Math.sin(_radian)*_radius);
            addEventListener(Event.ENTER_FRAME, onEnter);
        }
        private function onEnter(evt:Event):void
        {
            _radian += 0.05;
            _canvas.graphics.lineTo(Math.cos(_radian)*_radius, Math.sin(_radian)*_radius);
        }

    }
}