描画結果を次のフレームに重ねるブラー
-------------------------------------------------
1フレーム前の描画結果を次のフレームに重ねるブラー
クリックすると1フレームだけグラデーションの描画を行います。
透明度が高いほど予測不能なブレンドになって面白いです。
-------------------------------------------------
/**
* Copyright Hakuhin ( http://wonderfl.net/user/Hakuhin )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/19fP
*/
// -------------------------------------------------
//
// 1フレーム前の描画結果を次のフレームに重ねるブラー
//
// クリックすると1フレームだけグラデーションの描画を行います。
// 透明度が高いほど予測不能なブレンドになって面白いです。
//
// -------------------------------------------------
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
import flash.geom.*;
import flash.ui.*;
import flash.media.*;
public class Main extends Sprite {
public function Main() {
// -------------------------------------------------
// コンストラクタ
// -------------------------------------------------
// フレームレート
stage.frameRate = 30;
// 100%表示
stage.scaleMode = StageScaleMode.NO_SCALE;
// 左上
stage.align = StageAlign.TOP_LEFT;
stage.align = "TL";
// スプライトを作成
var sprite:Sprite = new Sprite();
addChild(sprite);
// 背景用ビットマップ
var bmp_bg:Bitmap = new Bitmap();
sprite.addChild(bmp_bg);
bmp_bg.smoothing = true;
// ブラー用ビットマップ
var bmp_blur:Bitmap = new Bitmap();
sprite.addChild(bmp_blur);
bmp_blur.smoothing = true;
// ペイント用ビットマップ
var shape:Shape = new Shape();
sprite.addChild(shape);
var graphic:Graphics = shape.graphics;
// ビットマップバッファ
var bmp_data:Array = new Array();
var flip :int = 0;
var alpha : Number = 0.985; // 透明度
var power : Number = 1.0; // 強さ
var scale_base : Number = 0.0; // 拡大ベース
var smooth : Boolean; // スムーズ
// 初期化へ
init();
// -------------------------------------------------
// 初期化
// -------------------------------------------------
function init():void{
// 画像のURL
var url:String = "http://actionscript.web.officelive.com/wonderfl/bg003.jpg";
// ステージサイズ
var w:uint;
var h:uint;
// ローダー作成
var loader_obj : Loader = new Loader();
var info : LoaderInfo = loader_obj.contentLoaderInfo;
// 読み込み完了
info.addEventListener (Event.INIT,LoaderInfoInitFunc);
function LoaderInfoInitFunc (event : Event):void {
// メモリからインスタンス化
var loader_memory : Loader = new Loader();
loader_memory.contentLoaderInfo.addEventListener (Event.COMPLETE,LoaderInfoCompleteFunc);
function LoaderInfoCompleteFunc (event : Event):void {
// キャプチャ
var bmp : BitmapData = new BitmapData(loader_memory.width,loader_memory.height,true,0);
stage.addChild(loader_memory);
bmp.draw(stage);
stage.removeChild(loader_memory);
bmp_bg.bitmapData = bmp;
ResizeFunc(null);
}
// 読み込み開始
loader_memory.loadBytes(loader_obj.contentLoaderInfo.bytes);
}
// 読み込み開始
load(url);
// リザルト作成
var result : Sprite = new Sprite();
addChild(result);
result.x = 0;
// ボタン作成
var button:Button = new Button(stage);
button.y = 80;
button.setSize(60,20);
button.setLabel("開く");
result.addChild(button);
// ボタンが押された
button.addEventListener(MouseEvent.CLICK,function(e:MouseEvent):void{
load(text.text);
});
function load(url:String):void{
// 読み込み
loader_obj.load(new URLRequest(url));
}
// ノックアウト用ラジオボタン
var radio_off:RadioButton = new RadioButton(stage);
result.addChild(radio_off);
radio_off.setLabel("スムーズなし");
radio_off.x = 10;
radio_off.y = 35;
radio_off.setSize(140,18);
radio_off.onClick(function(obj:RadioButton):void{smooth = false;});
var radio_on:RadioButton = new RadioButton(stage);
result.addChild(radio_on);
radio_on.setLabel("あり");
radio_on.x = 120;
radio_on.y = 35;
radio_on.setSize(140,18);
radio_on.onClick(function(obj:RadioButton):void{smooth = true;});
// ラジオボタンを関連付け
radio_on.attachGroup(radio_off);
radio_off.select();
// テキストフィールド作成
var ft_result:TextField = new TextField();
ft_result.x = 10;
ft_result.y = 60;
ft_result.width = 300;
ft_result.height = 20;
ft_result.selectable = false;
// 書式
var format_result:TextFormat = new TextFormat();
format_result.font = "MS ゴシック"; // フォント名
ft_result.defaultTextFormat = format_result;
// テキスト表示
result.addChild(ft_result);
// 読み込み状況
addEventListener (Event.ENTER_FRAME,EnterFrameFunc);
function EnterFrameFunc (event : Event) :void{
ft_result.text = "読込:" + info.bytesLoaded + " / 全体:" + info.bytesTotal;
}
// テキストフィールド作成
var text:TextField = new TextField();
text.x = 10;
text.y = 80;
text.height = 20;
text.type = TextFieldType.INPUT;
text.border = true;
// 書式
var format:TextFormat = new TextFormat();
format.font = "MS ゴシック"; // フォント名
text.defaultTextFormat = format;
// テキスト表示
text.text = url;
result.addChild(text);
// 書式
var tf_fmt:TextFormat = new TextFormat();
tf_fmt.font = "MS ゴシック"; // フォント名
tf_fmt.align = TextFormatAlign.CENTER; // 整列
// スライダーコメント作成
var tf_slider_a:TextField = new TextField();
tf_slider_a.x = 10;
tf_slider_a.y = 0;
tf_slider_a.width = 300;
tf_slider_a.height = 20;
tf_slider_a.border = false;
tf_slider_a.text = "透明度";
result.addChild(tf_slider_a);
tf_slider_a.defaultTextFormat = tf_fmt;
result.addChild(tf_slider_a);
// スライダー作成
var slider_a:SliderH = new SliderH(stage);
slider_a.x = 10;
slider_a.y = 20;
result.addChild(slider_a);
slider_a.setMinimum(0.8);
slider_a.setMaximum(1.0);
// スライダーが更新された
slider_a.setListener(function(v:Number):void{
alpha = slider_a.value;
});
slider_a.value = alpha;
// スライダーコメント作成
var tf_slider_w:TextField = new TextField();
tf_slider_w.x = 10;
tf_slider_w.y = 0;
tf_slider_w.width = 300;
tf_slider_w.height = 20;
tf_slider_w.border = false;
tf_slider_w.text = "弱め";
result.addChild(tf_slider_w);
tf_slider_w.defaultTextFormat = tf_fmt;
result.addChild(tf_slider_w);
var tf_slider_s:TextField = new TextField();
tf_slider_s.x = 10;
tf_slider_s.y = 0;
tf_slider_s.width = 300;
tf_slider_s.height = 20;
tf_slider_s.border = false;
tf_slider_s.text = "強め";
result.addChild(tf_slider_s);
tf_slider_s.defaultTextFormat = tf_fmt;
result.addChild(tf_slider_s);
// スライダー作成
var slider_p:SliderH = new SliderH(stage);
slider_p.x = 10;
slider_p.y = 20;
result.addChild(slider_p);
slider_p.setMinimum( 1.0);
slider_p.setMaximum(20.0);
// スライダーが更新された
slider_p.setListener(function(v:Number):void{
power = slider_p.value;
});
slider_p.value = power;
// スライダーコメント作成
var tf_slider_sm:TextField = new TextField();
tf_slider_sm.x = 10;
tf_slider_sm.y = 35;
tf_slider_sm.width = 300;
tf_slider_sm.height = 20;
tf_slider_sm.border = false;
tf_slider_sm.text = "縮小";
result.addChild(tf_slider_sm);
tf_slider_sm.defaultTextFormat = tf_fmt;
result.addChild(tf_slider_sm);
var tf_slider_la:TextField = new TextField();
tf_slider_la.x = 10;
tf_slider_la.y = 35;
tf_slider_la.width = 300;
tf_slider_la.height = 20;
tf_slider_la.border = false;
tf_slider_la.text = "拡大";
result.addChild(tf_slider_la);
tf_slider_la.defaultTextFormat = tf_fmt;
result.addChild(tf_slider_la);
// スライダー作成
var slider_s:SliderH = new SliderH(stage);
slider_s.x = 10;
slider_s.y = 55;
result.addChild(slider_s);
slider_s.setMinimum(-1.0);
slider_s.setMaximum( 1.0);
// スライダーが更新された
slider_s.setListener(function(v:Number):void{
scale_base = slider_s.value;
});
slider_s.value = scale_base;
// リサイズ時にフィット
stage.addEventListener(Event.RESIZE,ResizeFunc);
function ResizeFunc(e:Event):void{
w = stage.stageWidth;
h = stage.stageHeight;
bmp_bg.width = w;
bmp_bg.height = h - 110;
result.y = h - 110;
// テキストフィールド位置
text.width = w - 10 - 10 - button.width - 10;
// ボタン位置
button.x = w - button.width - 10;
// ビットマップバッファを再構築
bmp_data[0] = new BitmapData(w,h,true,0x00FFFFFF);
bmp_data[1] = new BitmapData(w,h,true,0x00FFFFFF);
// コメント
tf_slider_w.x = w / 2 + 5;
tf_slider_s.x = w - 40;
tf_slider_sm.x = w / 2 + 5;
tf_slider_la.x = w - 40;
// スライダー
slider_a.setSize(w/2 - 10 - 5,10);
slider_p.x = w/2 + 5;
slider_p.setSize(w/2 - 10 - 5,10);
slider_s.x = w/2 + 5;
slider_s.setSize(w/2 - 10 - 5,10);
}
ResizeFunc(null);
var color_cycle:Number = 0.0; // カラー周期
var rotate_cycle : Number = 0.0; // 回転周期
var scale_cycle : Number = 0.0; // 拡大縮小周期
var rotate_spd : Number = 0.05; // 回転速度
var scale_spd : Number = 0.021; // 拡大縮小速度
addEventListener(Event.ENTER_FRAME,function(e:Event):void{
// グラデーション描画
ShapeRender();
rotate_cycle += rotate_spd;
scale_cycle += scale_spd;
var x:Number = stage.mouseX;
var y:Number = stage.mouseY;
var r:Number = Math.sin(rotate_cycle) * 0.1 * power;
var s:Number = (Math.sin(scale_cycle) + scale_base) * 0.01 * power + 1.0;
var raster_w:Number = w;
var raster_h:Number = h - 110;
var half_x:Number = x/2;
var half_y:Number = y/2;
// 行列作成
var m:Matrix = new Matrix();
m.identity();
m.translate(-x,-y);
m.scale(s,s);
m.rotate(r*Math.PI/180);
m.translate( x, y);
// 透明度
bmp_blur.alpha = alpha;
// ビットマップを更新
bmp_blur.transform.matrix = m;
// 表示ビットマップ入れ替え
bmp_blur.bitmapData = bmp_data[flip];
bmp_blur.smoothing = smooth;
// 現在の状態をキャプチャ
bmp_data[1-flip].draw(
sprite,
new Matrix(1,0,0,1,0,0),
new ColorTransform(1,1,1,1,0,0,0,0),
BlendMode.NORMAL,
new Rectangle(0,0,raster_w,raster_h),
false
);
// 裏表更新
flip ++;
if(flip > 1) flip = 0;
});
// マウス操作
var mouse_down:Boolean = false;
sprite.addEventListener(MouseEvent.MOUSE_DOWN, function(e:MouseEvent):void{
mouse_down = true;
});
sprite.addEventListener(MouseEvent.MOUSE_UP, function(e:MouseEvent):void{
mouse_down = false;
});
var r:uint = 0xFF;
var g:uint = 0x00;
var b:uint = 0x00;
function ShapeRender():void{
// シェイプクリア
graphic.clear();
// ドラッグ中はグラデーションを描画
if(mouse_down){
var x:Number = stage.mouseX;
var y:Number = stage.mouseY;
color_cycle += 0.001;
if(color_cycle > 1.0) color_cycle -= 1.0;
var radius:Number = 100;
var s:Number = radius/1638.4;
var d:Number = color_cycle * 6;
if(0 < d && d < 1) g = Math.floor((1 - (1 - d)) * 0xFF);
if(1 < d && d < 2) r = Math.floor(( (2 - d)) * 0xFF);
if(2 < d && d < 3) b = Math.floor((1 - (3 - d)) * 0xFF);
if(3 < d && d < 4) g = Math.floor(( (4 - d)) * 0xFF);
if(4 < d && d < 5) r = Math.floor((1 - (5 - d)) * 0xFF);
if(5 < d && d < 6) b = Math.floor(( (6 - d)) * 0xFF);
var color:uint = (r << 16) | (g << 8) | (b << 0);
graphic.beginGradientFill (
GradientType.RADIAL ,
[color, color] ,
[1.0,0.0] ,
[0,255] ,
new Matrix(s,0,0,s,x,y)
);
graphic.drawCircle ( x , y, radius );
graphic.endFill();
}
}
}
}
}
}
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.geom.*;
// -------------------------------------------------
// ボタン
// -------------------------------------------------
internal class Button extends Sprite {
private var _width:Number;
private var _height:Number;
private var _text:TextField;
private var _background:Sprite;
public function Button(stage:Stage) {
var slider:Button = this;
// 背景用スプライト作成
_background = new Sprite();
addChild(_background);
// テキストフィールド
_text = new TextField();
addChild(_text);
_text.x = 0;
_text.y = 0;
_text.selectable = false;
// 書式
var format:TextFormat = new TextFormat();
format.align = TextFormatAlign.CENTER; // 整列
format.font = "MS ゴシック"; // フォント名
format.size = 14; // 文字のポイントサイズ
format.color = 0x202020; // 文字の色
_text.defaultTextFormat = format;
// マウスオーバーで少し明るく
addEventListener(MouseEvent.MOUSE_OVER,function(e:MouseEvent):void{
var color : ColorTransform = new ColorTransform(1,1,1,1,8,8,8,0);
transform.colorTransform = color;
});
// マウスアウトで元に戻す
addEventListener(MouseEvent.MOUSE_OUT,function(e:MouseEvent):void{
var color : ColorTransform = new ColorTransform(1,1,1,1,0,0,0,0);
transform.colorTransform = color;
});
// デフォルト値
setSize(100,100);
update();
}
// リサイズ
public function setSize(w:Number,h:Number):void{
// 背景リサイズ
_width = w;
_height = h;
update();
}
// ラベルセット
public function setLabel(str:String):void{
_text.text = str;
update();
}
// 描画更新
private function update():void{
// 背景描画
var g:Graphics = _background.graphics;
// 角丸矩形描画
g.clear();
g.lineStyle ( 0 , 0x808080 , 1.0,false,LineScaleMode.NONE,CapsStyle.ROUND,JointStyle.ROUND);
g.beginFill ( 0xF0F0F0 , 1.0 );
g.drawRoundRect ( 0 , 0 , _width , _height , 5 , 5 );
g.endFill();
// テキスト位置修正
_text.width = _width;
_text.height = _height;
}
}
// -------------------------------------------------
// 水平方向スライダー
// -------------------------------------------------
internal class SliderH extends Sprite {
private var _value:Number;
private var _minimum:Number;
private var _maximum:Number;
private var _width:Number;
private var _height:Number;
private var _width_bar:Number;
private var _drag:Boolean;
private var _listener:Function;
private var _bar:Sprite;
private var _background:Sprite;
public function SliderH(stage:Stage) {
var slider:SliderH = this;
var g:Graphics;
// 背景配置
_background = new Sprite();
addChild(_background);
// バー配置
_bar = new Sprite();
addChild(_bar);
_bar.x = 1;
_bar.y = 1;
// 背景描画
g = _background.graphics;
g.lineStyle ( 0 , 0xB0B0B0 , 1.0);
g.beginFill ( 0xF0F0F0 , 1.0 );
g.drawRect ( 0 , 0 , 100 , 100);
g.endFill();
// バー描画
g = _bar.graphics;
g.lineStyle ( 0 , 0x808080 , 1.0);
g.beginFill ( 0xA0A0A0 , 1.0 );
g.drawRect ( 0 , 0 , 100 , 100);
g.endFill();
// マウスイベント
stage.addEventListener(MouseEvent.MOUSE_DOWN,function(e:MouseEvent):void{
if(!_drag){
if(slider.hitTestPoint ( e.stageX , e.stageY , false )){
if(e.buttonDown){
_drag = true;
var color : ColorTransform = new ColorTransform(1,1,1,1,4,4,4,0);
transform.colorTransform = color;
DragEvent(e);
}
}
}
});
// マウスイベント
stage.addEventListener(MouseEvent.MOUSE_MOVE,function(e:MouseEvent):void{
if(_drag){
if(!e.buttonDown){
_drag = false;
// マウスアウトで元に戻す
var color : ColorTransform = new ColorTransform(1,1,1,1,0,0,0,0);
transform.colorTransform = color;
}
}
if(_drag) DragEvent(e);
});
function DragEvent(e:MouseEvent):void{
// ステージマウス座標をローカル座標系に落とし込む
var p : Point = new Point(e.stageX,e.stageY);
var m : Matrix = slider.transform.matrix;
m.invert();
p = m.transformPoint(p);
// バーの位置更新
_bar.x = p.x - _bar.width/2;
if(_bar.x < 0) _bar.x = 0;
if(_bar.x > _width - _bar.width){
_bar.x = _width - _bar.width;
}
// バーの位置からデフォルト値を決定
var d:Number = (_bar.x) / (_width - _bar.width);
d = (_maximum - _minimum) * d + _minimum;
value = d;
e.updateAfterEvent();
}
// デフォルト値
_value = 0.0;
_minimum = 0.0;
_maximum = 1.0;
_drag = false;
_listener = null;
setSize(100,10);
setSizeBar(20);
update();
}
// 最小値セット
public function setMinimum(v:Number):void{
_minimum = v;
update();
}
// 最大値セット
public function setMaximum(v:Number):void{
_maximum = v;
update();
}
// 通常値取得
public function get value():Number{
return _value;
}
// 通常値セット
public function set value(v:Number):void{
_value = v;
update();
// 通知
if(_listener != null) _listener(_value);
}
// 更新通知
public function setListener(func:Function):void{
_listener = func;
}
// リサイズ
public function setSize(w:Number,h:Number):void{
// 背景リサイズ
_width = w;
_height = h;
update();
}
// バーのリサイズ
public function setSizeBar(w:Number):void{
// 背景リサイズ
_width_bar = w;
update();
}
// 描画更新
private function update():void{
// リサイズ
_background.scaleX = _width / 100;
_background.scaleY = _height / 100;
_bar.scaleX = (_width_bar - 2) / 100;
_bar.scaleY = (_height - 2) / 100;
// バーの位置
var length : Number = _width - 2 - _bar.width;
var d : Number = (_value - _minimum) / (_maximum - _minimum);
_bar.x = length * d + 1;
}
}
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.geom.*;
// -------------------------------------------------
// ラジオボタン
// -------------------------------------------------
internal class RadioButton extends Sprite {
private var _width:Number;
private var _height:Number;
private var _text:TextField;
private var _background:Sprite;
private var _button:Sprite;
private var _check:Sprite;
private var _pref:RadioButton;
private var _post:RadioButton;
private var _selected:Boolean;
private var _onClick:Function;
public function RadioButton(stage:Stage) {
var slider:RadioButton = this;
_onClick = null;
_selected = false;
// リングリスト作成
_pref = this;
_post = this;
// 背景用スプライト作成
_background = new Sprite();
addChild(_background);
// ボタン用スプライト作成
_button = new Sprite();
addChild(_button);
// チェック用スプライト作成
_check = new Sprite();
addChild(_check);
// テキストフィールド
_text = new TextField();
addChild(_text);
_text.x = 20;
_text.y = 0;
_text.selectable = false;
// 書式
var format:TextFormat = new TextFormat();
format.align = TextFormatAlign.LEFT; // 整列
format.font = "MS ゴシック"; // フォント名
format.size = 14; // 文字のポイントサイズ
format.color = 0x202020; // 文字の色
_text.defaultTextFormat = format;
// マウスオーバーで少し明るく
addEventListener(MouseEvent.MOUSE_OVER,function(e:MouseEvent):void{
var color : ColorTransform = new ColorTransform(1,1,1,1,8,8,8,0);
transform.colorTransform = color;
});
// マウスアウトで元に戻す
addEventListener(MouseEvent.MOUSE_OUT,function(e:MouseEvent):void{
var color : ColorTransform = new ColorTransform(1,1,1,1,0,0,0,0);
transform.colorTransform = color;
});
// クリック
addEventListener(MouseEvent.CLICK,function(e:MouseEvent):void{
select();
});
// デフォルト値
setSize(100,100);
update();
}
// リサイズ
public function setSize(w:Number,h:Number):void{
// 背景リサイズ
_width = w;
_height = h;
update();
}
// ラベルセット
public function setLabel(str:String):void{
_text.text = str;
update();
}
// 描画更新
private function update():void{
// 背景描画
var g:Graphics;
var height_half:Number = _height / 2;
var r:Number;
// 背景描画
g = _background.graphics;
g.clear();
g.beginFill ( 0xFFFFFF , 0.0 );
g.drawRect ( 0 , 0 , _width , _height );
g.endFill();
// ボタン描画
g = _button.graphics;
g.clear();
g.lineStyle ( 0 , 0x808080 , 1.0,false,LineScaleMode.NONE,CapsStyle.ROUND,JointStyle.ROUND);
g.beginFill ( 0xF0F0F0 , 1.0 );
r = height_half - 4;
if(r < 4) r = 4;
g.drawCircle ( height_half , height_half , r );
g.endFill();
// 背景描画
g = _check.graphics;
g.clear();
g.lineStyle ( 0 , 0x404040 , 1.0,false,LineScaleMode.NONE,CapsStyle.ROUND,JointStyle.ROUND);
g.beginFill ( 0x606060 , 1.0 );
r = height_half - 8;
if(r < 2) r = 2;
g.drawCircle ( height_half , height_half , r );
g.endFill();
// テキスト位置修正
_text.x = _height;
_text.width = _width;
_text.height = _height;
if(_selected) _check.visible = true;
else _check.visible = false;
}
// グループにセット
public function attachGroup(button:RadioButton):void{
button.removeGroup();
var pref:RadioButton = this;
var post:RadioButton = _post;
pref._post = button;
post._pref = button;
button._pref = pref;
button._post = post;
}
// グループから外す
public function removeGroup():void{
var pref:RadioButton = _pref;
var post:RadioButton = _post;
pref._post = post;
post._pref = pref;
_pref = this;
_post = this;
}
// 選択
public function select():void{
// すべてのチェックを外す
var list:RadioButton = this._post;
while(true){
if(list == this) break;
list._selected = false;
list.update();
list = list._post;
}
// チェック
list._selected = true;
list.update();
// コールバック関数呼び出し
if(_onClick != null){
_onClick(this);
}
}
// イベント登録
public function onClick(func:Function):void{
_onClick = func;
}
}
// -------------------------------------------------
// 外部画像をサムネイルとしてキャプチャ
// -------------------------------------------------
import flash.net.*;
import flash.events.*;
import flash.display.*;
import flash.geom.*;
function ThumbnailCapture(url:String,time:uint,stage:Stage):void{
// キャプチャタイミング
Wonderfl.capture_delay( time );
// スプライト作成
var sprite : Sprite = new Sprite();
// ステージ最前面に配置
stage.addChildAt(sprite,stage.numChildren);
// ローダー
var loader_obj : Loader = new Loader();
loader_obj.contentLoaderInfo.addEventListener (Event.INIT,function(e:Event):void{
// メモリからインスタンス化
var loader_memory : Loader = new Loader();
loader_memory.contentLoaderInfo.addEventListener (Event.INIT,function(e:Event):void{
// キャプチャ
var bmp : BitmapData = new BitmapData(loader_memory.width,loader_memory.height,true,0);
sprite.addChild(loader_memory);
bmp.draw(sprite);
sprite.removeChild(loader_memory);
loader_memory.unload();
loader_obj.unload();
loader_memory = null;
loader_obj = null;
// 画像を配置
var bmp_obj : Bitmap = new Bitmap(bmp);
bmp_obj .width = stage.stageWidth;
bmp_obj .height = stage.stageHeight;
stage.addChild(bmp_obj );
});
// 読み込み開始
loader_memory.loadBytes(loader_obj.contentLoaderInfo.bytes);
});
// 読み込み開始
loader_obj.load(new URLRequest(url));
}