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

forked from: stage.qualityとnativeの3D描画について

クリックでstageのqualityを変更してsprite生成

赤がLOWのときにつくったsprite
青がHIGHのときにつくったsprite

3Dのspriteがstage.qualityを変更しても生成時の見えが保持されている。
StageQuality.HIGHのときにつくったものは、stage.qualityを変えてもスムーズ。
StageQuality.LOWのときにつくったものは、stage.qualityを変えてもスムーズではない。
この描画を、制御できないのか?
/**
 * Copyright dizgid ( http://wonderfl.net/user/dizgid )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/ric2
 */

// forked from dizgid's stage.qualityとnativeの3D描画について
/*
クリックでstageのqualityを変更してsprite生成

赤がLOWのときにつくったsprite
青がHIGHのときにつくったsprite

3Dのspriteがstage.qualityを変更しても生成時の見えが保持されている。
StageQuality.HIGHのときにつくったものは、stage.qualityを変えてもスムーズ。
StageQuality.LOWのときにつくったものは、stage.qualityを変えてもスムーズではない。
この描画を、制御できないのか?
*/
package {
	import flash.text.TextFormat;
	import flash.text.TextField;
	import flash.events.MouseEvent;
	import flash.display.StageQuality;
    import flash.display.Sprite;
    import flash.events.Event;
    import net.hires.debug.Stats;
     [SWF(frameRate="60")]
    public class FlashTest extends Sprite {
    	
    		private var _preSp:Sprite;
    		private var _count:int;
        public function FlashTest() {
        		stage.quality = StageQuality.HIGH;
			_count = 0;
        		stage.addEventListener(MouseEvent.CLICK, _mouseClickHandler);
        		
        		this.addChild(new Stats());
        }
        private function _toggleQuality():void
        {
			stage.quality = (_count % 2 == 0) ? StageQuality.LOW : StageQuality.HIGH;
        }
        private function _mouseClickHandler(e:MouseEvent):void
        {
            	//_delete();
            	_toggleQuality();
            	_create();
            	_count++;
        }
        private function _create():void
        {
        	    var sp:Sprite = new Sprite();
            var size:Number = 250;
            var color:uint = (_count % 2 == 0) ? 0xff0000 : 0x0000ff;
            sp.graphics.lineStyle(4, 0x000000);
            sp.graphics.beginFill(color, 0.8);
            sp.graphics.drawRect(-size/2, -size/2, size, size);
            sp.graphics.endFill();
            
            var txt:TextField = new TextField();
            txt.defaultTextFormat = new TextFormat(null, 60);
            txt.text = "FLASH TEST";
            txt.width = size;
            txt.x = -size/2;
            txt.y = -size/2;
            sp.addChild(txt);
            
            sp.x = stage.stageWidth / 2;
            sp.y = stage.stageHeight / 2;
            sp.x += Math.random() * 60 - 35;
            sp.y += Math.random() * 60 - 35;
            sp.rotationZ = 20;//3D
            //sp.rotation = 20;//2D
            sp.addEventListener(Event.ENTER_FRAME, function():void{ sp.rotationY += 1.0;});
            
            this.addChild(sp);
            
            _preSp = sp;
        }
        private function _delete():void
        {
        		if(_preSp != null){
        			this.removeChild(_preSp);
        		}
        }
    }
}