MovieClip 参照てすと
♥0 |
Line 204 |
Modified 2012-08-17 10:54:54 |
MIT License
archived:2017-03-20 07:06:05
ActionScript3 source code
/**
* Copyright ic_yas ( http://wonderfl.net/user/ic_yas )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/r3df
*/
// forked from Saqoosha's Pixels
package {
import flash.ui.Keyboard;
import flash.display.*;
import flash.events.*;
import net.hires.debug.Stats;
import org.libspark.betweenas3.BetweenAS3;
import org.libspark.betweenas3.tweens.ITween;
import org.libspark.betweenas3.easing.*;
[SWF(backgroundColor="#000000", frameRate="60", width="475", height="475")]
public class Main extends Sprite {
private var _stats:Stats;
private var _statsLayer:Sprite;
private var _mainLayer:Sprite;
private var _traceLayer:Sprite;
private var iw:InstanceWatcher;
public function Main() {
_stats = new Stats();
_statsLayer = new Sprite();
_mainLayer = new Sprite();
_traceLayer = new Sprite();
WTrace.initTrace(_traceLayer);
iw = InstanceWatcher.instance;
_statsLayer.addChild(_stats);
stage.scaleMode = StageScaleMode.SHOW_ALL;
stage.align = StageAlign.TOP;
stage.quality = StageQuality.BEST;
stage.addEventListener(MouseEvent.MOUSE_DOWN, _onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, _onMouseUp);
// stage.addEventListener(MouseEvent.CLICK, _onClick);
stage.addEventListener(Event.ENTER_FRAME,_onEnterFrame);
stage.addEventListener(KeyboardEvent.KEY_UP,_onKeyUp);
stage.addChild(_mainLayer);
stage.addChild(_statsLayer);
stage.addChild(_traceLayer);
trace("start");
}
private function _onClick(e:MouseEvent):void {
/* for(var i :int = 0; i<10000; i++){
_mainLayer.addChild(new CircleMC(Math.random()*20+5));
}
*/
}
private function _onKeyUp(e:KeyboardEvent):void {
switch(e.keyCode){
case Keyboard.F1 :
stage.removeChild(_mainLayer);
_mainLayer = null;
_mainLayer = new Sprite();
break;
case Keyboard.F2 :
stage.addChildAt(_mainLayer,0);
break;
case 49: //NUMBER 1
var numChilrden:int = _mainLayer.numChildren;
trace("before :"+_mainLayer.numChildren);
while(_mainLayer.numChildren > 0){
// trace(_mainLayer.numChildren);
_mainLayer.removeChildAt(0);
}
trace("after :"+_mainLayer.numChildren);
stage.removeChild(_mainLayer);
_mainLayer = null;
_mainLayer = new Sprite();
break;
case 65: //A
for(var i :int = 0; i<10000; i++){
_mainLayer.addChild(new CircleMC(Math.random()*20+5));
}
break;
case Keyboard.SPACE:
trace(iw.getWatchString() );
break;
}
}
private function _onMouseDown(e:MouseEvent):void {
}
private function _onMouseMove(e:MouseEvent):void {
}
private function _onMouseUp(e:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_MOVE, _onMouseMove);
}
private function _onEnterFrame(e:Event):void{
// _statsを常に最前面に表示しておく
// stage.setChildIndex(_stats,stage.numChildren-1);
}
}
}
import flash.display.MovieClip;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.filters.BlurFilter;
import flash.filters.GlowFilter;
import flash.display.Sprite;
class CircleMC extends MovieClip{
public function CircleMC(r:Number = 50){
graphics.lineStyle(1, 0x000000, 0.5);
graphics.beginFill(0xFF0000, r);
graphics.drawCircle(Math.random()*400, Math.random()*400, r);
graphics.endFill();
}
}
//以下未使用
///////////////////////////
///// WONDERFL TRACE /////
///////////////////////////
import flash.display.Sprite;
import flash.display.Stage;
import flash.text.TextField;
import flash.text.TextFormat;
//global trace function
var trace:Function;
//wtreace class
class WTrace
{
private static var FONT:String = "Fixedsys";
private static var SIZE:Number = 12;
private static var TextFields:Array = [];
private static var trace_stage:Sprite;
public static function initTrace(stg:Sprite):void
{
trace_stage = stg;
trace = wtrace;
}
private static function scrollup():void
{
// maximum number of lines: 100
if (TextFields.length > 100)
{
var removeme:TextField = TextFields.shift();
trace_stage.removeChild(removeme);
removeme = null;
}
for(var x:Number=0;x<TextFields.length;x++)
{
(TextFields[x] as TextField).y -= SIZE*1.2;
}
}
public static function wtrace(... args):void
{
var s:String="";
var tracefield:TextField;
for (var i:int;i < args.length;i++)
{
// imitating flash:
// putting a space between the parameters
if (i != 0) s+=" ";
s+=args[i].toString();
}
tracefield= new TextField();
tracefield.autoSize = "left";
tracefield.text = s;
tracefield.y = trace_stage.stage.stageHeight - 20;
var tf:TextFormat = new TextFormat(FONT, SIZE);
tracefield.setTextFormat(tf);
trace_stage.addChild(tracefield);
scrollup();
TextFields.push(tracefield);
}
}
/**
* @author ken - Jinten.net
* @version 0.2
by http://www.jinten.net/blog/archives/47
*/
import flash.sampler.NewObjectSample;
import flash.utils.Dictionary;
class InstanceWatcher {
private static var _instance:InstanceWatcher = null;
public static function get instance():InstanceWatcher {
if (_instance == null) {
_instance = new InstanceWatcher(new SingletonEssence);
}
return _instance;
}
private static var _dict:Dictionary = new Dictionary();
private static var _instances:Object = new Object();
public function InstanceWatcher(essense:SingletonEssence) {
if (essense == null) {
throw Error('use InstanceWatcher.instance !!');
}
startSampling();
}
public static function startSampling():void {
flash.sampler.startSampling();
}
public static function pauseSampling():void {
flash.sampler.pauseSampling();
}
public static function stopSampling():void {
flash.sampler.stopSampling();
}
public function getWatchString():String {
watch();
var sum:int = 0;
var str:String = '';
for (var type:String in _dict) {
var d:Dictionary = _dict[type] as Dictionary;
var num:int = 0;
for (var inst:* in d) {
num++; sum++;
}
str += type + ':' + num + '\n';
}
str += "sum :" + sum;
return str;
}
private function watch():void {
pauseSampling();
var samples:Object = flash.sampler.getSamples();
for each(var sample:Object in samples) {
if (sample is NewObjectSample) {
var nos:NewObjectSample = NewObjectSample(sample);
var type:String = String(nos.type);
if (nos.object != undefined) {
if (!(_dict[type] is Dictionary)) {
_dict[type] = new Dictionary(true);
}
_dict[type][nos.object] = null;
}
}
}
flash.sampler.clearSamples();
startSampling();
}
}
class SingletonEssence { }