Vector にちょっとずつ要素を追加してみるテスト

by mezumona
0 ~ 9 のキーでちょっとずつ追加していきます。
* 増やす量は以下の通り
*   1 キー: 1
*   2 キー: 10
*   3 キー: 100
*     (省略)
*   8 キー: 10000000
*   9 キー: 20000000
*   0 キー: 50000000
* 後半のキーを一気に連打したりすると本来よりも早くブラウザが落るけど、
* 丁寧にやっていくと自分の環境では必ず 97338788 の次で落ちた。
♥0 | Line 69 | Modified 2010-04-18 17:24:00 | MIT License
play

ActionScript3 source code

/**
 * Copyright mezumona ( http://wonderfl.net/user/mezumona )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/fCSH
 */

/**
 * 0 ~ 9 のキーでちょっとずつ追加していきます。
 * 増やす量は以下の通り
 *   1 キー: 1
 *   2 キー: 10
 *   3 キー: 100
 *     (省略)
 *   8 キー: 10000000
 *   9 キー: 20000000
 *   0 キー: 50000000
 * 後半のキーを一気に連打したりすると本来よりも早くブラウザが落るけど、
 * 丁寧にやっていくと自分の環境では必ず 97338788 の次で落ちた。
 */

package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.system.System;
	import flash.text.TextField;

	[SWF(frameRate="1")]
	public class VectorTest extends Sprite
	{
		public function VectorTest()
		{
			if (stage)	init();
			else		    addEventListener(Event.ADDED_TO_STAGE, init);
		}

		public function init(event:Event = null):void
		{
			message.width = stage.stageWidth;
			message.height = stage.stageHeight;
			stage.addChild(message);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, stageKeyDownHandler);
			if (event) removeEventListener(Event.ADDED_TO_STAGE, init);
		}

		private var message:TextField = new TextField();
		private var vec:Vector.<int> = new Vector.<int>();

		public function stageKeyDownHandler(event:KeyboardEvent):void
		{
			var i:int = vec.length;
			var l:int = vec.length;
			var keycode:uint = event.keyCode;
			switch(keycode) {
				case 49:
					l += 1;
					break;
				case 50:
					l += 10;
					break;
				case 51:
					l += 100;
					break;
				case 52:
					l += 1000;
					break;
				case 53:
					l += 10000;
					break;
				case 54:
					l += 100000;
					break;
				case 55:
					l += 1000000;
					break;
				case 56:
					l += 10000000;
					break;
				case 57:
					l += 20000000;
					break;
				case 48:
					l += 50000000;
			}
			for (; i < l; ++i) vec[vec.length] = 0;
			message.text = [
				vec.length,
				System.totalMemory
			].join("\n");
		}
	}
}