画像の描画サンプル

by nishink
画像の描画サンプル
♥0 | Line 44 | Modified 2010-04-03 11:25:03 | MIT License | (replaced)
play

Related images

ActionScript3 source code

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

// 画像の描画サンプル
package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.system.LoaderContext;
	import flash.text.TextField;

	public class FlashTest extends Sprite {
		// 画像のURL
		private const IMAGE_URL:String = "http://assets.wonderfl.net/images/related_images/6/6c/6cce/6cce341221117c18cd5aa7f09731f6f9cd883f86";
		// 実行結果出力領域
		private var console:TextField = new TextField();

		// コンストラクタ
		public function FlashTest() {
			var loader:Loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);

			// 画像の読み込み
			// new LoaderContext(true);は、読み込んだ画像を描画(BitmapData.draw)するのに必要
			// これを指定しないとSecurityError #2122になる
			loader.load(new URLRequest(IMAGE_URL), new LoaderContext(true));

			// 読み込んだ画像を表示
			addChild(loader);

			// 状態の表示
			console.textColor = 0x00FF00;
			console.width = 465;
			//addChild(status);
		}


		// 読み込み完了
		private function complete(event:Event):void {
			var loaderInfo:LoaderInfo = event.target as LoaderInfo;
			// イベントリスナーの破棄
			loaderInfo.removeEventListener(Event.COMPLETE, complete);
			try {
				// BitmapData.cloneによる画像の複製
				var image : Bitmap = event.target.loader.content as Bitmap;
				var cloneImage : Bitmap = new Bitmap(image.bitmapData.clone());
				cloneImage.x = 32;
				addChild(cloneImage);
				// 画像のサイズを表示
				var loader:Loader = loaderInfo.loader;
				console.appendText("\n " + loader.width + "," + loader.height);
				addChild(console);
				// Bitmapに画像を描画
				var bd:BitmapData = new BitmapData(loader.width, loader.height, true, 0);
				bd.draw(loader);
				var bmp:Bitmap = new Bitmap(bd);
				bmp.x = 16;
				addChild(bmp);
			} catch (e:Error) { // 例外処理
				console.appendText("\n " + e);
				addChild(console);
			}
		}
	}
}