Home > 梅原 > Wonderflの張付け法

Wonderflの張付け法

20090514
Category:梅原 /Tags:

wonderflWonderflの投稿をブログパーツとして貼付けることができる。
Mac版Safari(Version 4 Public Beta (5528.16))だと、addEventListenerを仕掛けていても、
画面上をクリックするたびに初期化されるっぽいので、こちらも注意。

↓こんなhtml

<div style="text-align:center;width:465px;"><iframe title="six*3 - wonderfl build flash online" scrolling="no" src="http://wonderfl.net/blogparts/72LK" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.net/c/72LK" title="six*3 - wonderfl build flash online">six*3 - wonderfl build flash online</a></div>

titleとsrcのblogparts/以下の文字列を差し替えること。

↓結果

Wonderflのデータが飛んだらとても悲しいので、勉強のために作ったようなモノならASも張付けておくといいかも。

↓AS

/*
AS3で作り直してみる第二弾。
特に工夫もなんもないけど、
思い返せばタイムラインアニメーションとして最初に作ったのは約10年前。
あれからどれだけ進歩したのだろう。
スクリプトに置き換えることは進歩なのだろうか、、、?
そんな物思いに耽る5月の夜。
*/
package {
	import flash.display.Sprite;
	import flash.events.*;
	[SWF(backgroundColor="0xBFCFEB")]
	public class Main extends Sprite {
		public function Main() {
			var count:int;
			var ran:Number = Math.random();
			var bar_array:Array = new Array();
			var color_array:Array = [0x274A8A,0xFFFFFF,0x8A4A27]
			for (var j:int = 0; j<3; j++) {
				for (var i:int = 0; i < 6; i++) {
					bar_array[i+j*6] = MakeUI.newSprite([stage.stageWidth/2,stage.stageHeight/2],[["rotation",i*60],["scaleX",5/(2+j*2)],["scaleY",5/(2+j*2)]],null,MakeUI.newSprite([50*ran,0],[["rotation",90*ran]],[["beginFill",[color_array[j],0.5]],["drawRoundRect",[0,0,50,100,50]]]));
					addChild(bar_array[i+j*6]);
				}
			}

			addEventListener(Event.ENTER_FRAME, ENTER_FRAME);
			function ENTER_FRAME(e:Event):void {
				count++;
				for (var i:int = 0; i < 18; i++) {
					bar_array[i].getChildAt(0).rotation += Math.sin(count/300)+Math.cos(count/100)+Math.cos(count/70)*3;
					bar_array[i].getChildAt(0).x += Math.sin(count/123)/3+Math.cos(count/17)/2;
					bar_array[i].getChildAt(0).y += Math.cos(count/250)/3+Math.sin(count/21)/2;
				}
			}
		}
	}
}

/////////////////////////////////////////////////////////////////////////////

import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.TextFormat;
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.BitmapData;
import flash.display.Bitmap;
class MakeUI{
	public static var defaultTextFormat:TextFormat = new TextFormat();
    public static function newShape(x_y_w_h_sh:Array = null,property:Array=null,graphics:Array=null):Shape{
        var i:int;
        var sh:Shape;
        if(x_y_w_h_sh && x_y_w_h_sh[4]){
            sh = x_y_w_h_sh[4];
        }else{
            sh = new Shape();
        }
        if(x_y_w_h_sh){
            if (x_y_w_h_sh[0]) { sh.x = x_y_w_h_sh[0] };
            if (x_y_w_h_sh[1]) { sh.y = x_y_w_h_sh[1] };
        }
        if(property){
            for (i = 0; i < property.length; i++) {
                if(property[i] && property[i].length > 1){
                    sh[property[i][0]] = property[i][1];
                }
            }
        }
        if(graphics){
            for (i = 0; i < graphics.length; i++) {
                if(graphics[i] && graphics[i].length > 1){
                    sh.graphics[graphics[i][0]].apply(null, graphics[i][1]);
                }
            }

        }
        if(x_y_w_h_sh){
            if (x_y_w_h_sh[2]) { sh.width = x_y_w_h_sh[2] };
            if (x_y_w_h_sh[3]) { sh.height = x_y_w_h_sh[3] };
        }
        return sh;
    }
    public static function newSprite(x_y_w_h_sp:Array = null,property:Array=null,graphics:Array=null,addChild:DisplayObject = null):Sprite{
        var i:int;
        var sp:Sprite;
        if(x_y_w_h_sp && x_y_w_h_sp[4]){
            sp = x_y_w_h_sp[4];
        }else{
            sp = new Sprite();
        }
        if(x_y_w_h_sp){
            if (x_y_w_h_sp[0]) { sp.x = x_y_w_h_sp[0] };
            if (x_y_w_h_sp[1]) { sp.y = x_y_w_h_sp[1] };
        }
        if(property){
            for (i = 0; i < property.length; i++) {
                if(property[i] && property[i].length > 1){
                    sp[property[i][0]] = property[i][1];
                }
            }
        }
        if(graphics){
            for (i = 0; i < graphics.length; i++) {
                if(graphics[i] && graphics[i].length > 1){
                    sp.graphics[graphics[i][0]].apply(null, graphics[i][1]);
                }
            }

        }
        if(addChild){
            sp.addChild(addChild);
        }
        if(x_y_w_h_sp){
            if (x_y_w_h_sp[2]) { sp.width = x_y_w_h_sp[2] };
            if (x_y_w_h_sp[3]) { sp.height = x_y_w_h_sp[3] };
        }
        return sp;
    }

    public static function newTextField(x_y_w_h_txt_color_alpha:Array = null,property:Array=null,method:Array=null):TextField{
        var i:int;
        var ta:TextField = new TextField();
       	ta.defaultTextFormat = defaultTextFormat;
        if(x_y_w_h_txt_color_alpha){
            if (x_y_w_h_txt_color_alpha[0]) { ta.x = x_y_w_h_txt_color_alpha[0] };
            if (x_y_w_h_txt_color_alpha[1]) { ta.y = x_y_w_h_txt_color_alpha[1] };
            if (x_y_w_h_txt_color_alpha[2]) { ta.width = x_y_w_h_txt_color_alpha[2] };
            if (x_y_w_h_txt_color_alpha[3]) { ta.height = x_y_w_h_txt_color_alpha[3] };
            if (x_y_w_h_txt_color_alpha[4]) { ta.text = x_y_w_h_txt_color_alpha[4] };
            if (x_y_w_h_txt_color_alpha[5]) { ta.textColor = x_y_w_h_txt_color_alpha[5] };
            if (x_y_w_h_txt_color_alpha[6]) { ta.alpha = x_y_w_h_txt_color_alpha[6] };
        }
        if(property){
            for (i = 0; i < property.length; i++) {
                if(property[i] && property[i].length > 1){
                    ta[property[i][0]] = property[i][1];
                }
            }
        }
        if(method){
            for (i = 0; i < method.length; i++) {
                if(method[i] && method[i].length > 1){
                    ta[i].apply(null, method[i][1]);
                }
            }
        }
        return ta;
    }
    /*
    //以下はテスト
    public static function pozObject(x:Number=NaN,y:Number=NaN,width:Number=NaN,hight:Number=NaN,obj:Object = null):Object{
        if(x){obj.x = x}
        if(y){obj.y = y}
        return obj;
    }
    public static function newBitmap(x:Number=NaN,y:Number=NaN,width:Number=NaN,hight:Number=NaN,bd:BitmapData = null):Bitmap{
        var b:Bitmap = new Bitmap(bd);
        if(x){b.x = x}
        if(y){b.y = y}
        return b;
    }
    */
}

関連記事:

Comments are closed.