変換したpbjの使用テスト

by zahir
pbjをAS3に変換する
http://wonderfl.net/code/14f2dc3b7971c0a003885f1467eeaa194ad4285d

のテスト兼使い道的な投稿。
素でpbjを使うよりは少しは使い易いと思います。
* 
♥0 | Line 112 | Modified 2010-01-02 23:23:36 | MIT License
play

ActionScript3 source code

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

/*
	pbjをAS3に変換する
	http://wonderfl.net/code/14f2dc3b7971c0a003885f1467eeaa194ad4285d
	
	のテスト兼使い道的な投稿。
	素でpbjを使うよりは少しは使い易いと思います。
 * */
package{
	import flash.display.Graphics;
	import flash.display.Sprite;

	public class SahderTest extends Sprite{
		private var tpg:ThreePointGradient;
		private var p1:Array = [50,50];
		private var p2:Array = [300,50];
		private var p3:Array = [250, 300];
		public function SahderTest(){
			tpg = new ThreePointGradient();
			
			tpg.point1 = p1;
			tpg.color1 = [1,0,1,1];
			
			tpg.point2 = p2;
			tpg.color2 = [1,1,0,1];
			
			tpg.point3 = p3;
			tpg.color3 = [0,1,1,1];
			
			var g:Graphics = this.graphics;
			g.beginShaderFill( tpg );
			g.moveTo(p1[0], p1[1]);
			g.lineTo(p2[0], p2[1]);
			g.lineTo(p3[0], p3[1]);
			g.lineTo(p1[0], p1[1]);
			g.endFill();
			
		}
	}
}

import flash.display.Shader;
import flash.utils.ByteArray;
import mx.utils.Base64Decoder;

class ThreePointGradient extends Shader{
	static private var code:ByteArray;

	// static initializer
	{
		// ↓なんか警告出るけど実行はできるからいいかな?
		static var dec:Base64Decoder = new Base64Decoder() ;
		dec.decode(
					"pQEAAACkEgBUaHJlZVBvaW50R3JhZGllbnSgDG5hbWVzcGFjZQBQZXRyaSBMZXNraW5lbjo6RXhh" +
					"bXBsZQCgDHZlbmRvcgBQZXRyaSBMZXNraW5lbgCgCHZlcnNpb24AAQCgDGRlc2NyaXB0aW9uAENy" +
					"ZWF0ZXMgYSBncmFkaWVudCBmaWxsIHVzaW5nIHRocmVlIHNwZWNpZmllZCBwb2ludHMgYW5kIGNv" +
					"bG9ycy4AoQECAAAMX091dENvb3JkAKEBAgAAA3BvaW50MQCiAm1pblZhbHVlAAAAAAAAAAAAogJt" +
					"YXhWYWx1ZQBFegAARXoAAKICZGVmYXVsdFZhbHVlAAAAAAAAAAAAoQEEAQAPY29sb3IxAKIEZGVm" +
					"YXVsdFZhbHVlAD+AAAAAAAAAAAAAAD+AAAChAQICAAxwb2ludDIAogJtaW5WYWx1ZQAAAAAAAAAA" +
					"AKICbWF4VmFsdWUARXoAAEV6AACiAmRlZmF1bHRWYWx1ZQBD+gAAQ/oAAKEBBAMAD2NvbG9yMgCi" +
					"BGRlZmF1bHRWYWx1ZQAAAAAAP4AAAAAAAAA/gAAAoQECAgADcG9pbnQzAKICbWluVmFsdWUAAAAA" +
					"AAAAAACiAm1heFZhbHVlAEV6AABFegAAogJkZWZhdWx0VmFsdWUAAAAAAEP6AAChAQQEAA9jb2xv" +
					"cjMAogRkZWZhdWx0VmFsdWUAAAAAAAAAAAA/gAAAP4AAAKECBAUAD2RzdAAdBgDBAgAQAAIGAMEA" +
					"ALAAHQYAMQYAEAAdBgDBAgCwAAIGAMEAALAAHQcAwQYAEAAdCACABwBAADIGAIAAAAAAAgYAgAYA" +
					"wAAdCABABgAAADIGAIAAAAAAAgYAgAcAAAAdCAAgBgAAAB0IABAGAIAAHQYAgAYAgAADBgCABwBA" +
					"AB0GAEAHAAAAAwYAQAYAwAAdBwAgBgAAAAIHACAGAEAAHQoA8wcAqgAECQAECgAAAAMJAAQIAAAA" +
					"HQgABAkAAAAdBgDBAAAQAAIGAMEAALAAHQcAMQYAEAAiBwA0CAAAAB0GAMEHALAAHQcAMQYAEAAy" +
					"CQCAAAAAADIJAEA/gAAAHQoAgAcAgAAKCgCACQAAAB0JACAKAAAAHQoAgAcAwAAKCgCACQAAAB0J" +
					"ABAKAAAAHQoAIAkAgAAJCgAgCQBAAB0KAIAKAIAAHQoAIAkAwAAJCgAgCQBAAB0KAEAKAIAAHQYA" +
					"wQkAsAAdCQCABgAAAB0JAEAGAAAAHQkAIAYAAAAdCQAQBgAAADIKAPA/gAAAAgoA8wkAGwAdCwDz" +
					"AQAbAAMLAPMKABsAHQwA8wMAGwADDADzCQAbAAELAPMMABsAHQkAgAYAQAAdCQBABgBAAB0JACAG" +
					"AEAAHQkAEAYAQAAyCgDwP4AAAAIKAPMJABsAHQwA8wsAGwADDADzCgAbAB0NAPMEABsAAw0A8wkA" +
					"GwABDADzDQAbAB0FAPMMABsA" );
		code = dec.toByteArray();
		dec = null;
	}

	public function ThreePointGradient(){
		super( code );
	}


	public function get name():String{
		return data[ "name" ];
	}

	public function get nameSpace():String{
		return data[ "nameSpace" ];
	}

	public function get vendor():String{
		return data[ "vendor" ];
	}

	public function get version():String{
		return data[ "version" ];
	}

	public function get description():String{
		return data[ "description" ];
	}

	public function get color2():Array{
		return data[ "color2" ].value;
	}
	public function set color2( value:Array ):void{
		data[ "color2" ].value = value;
	}

	public function get color1():Array{
		return data[ "color1" ].value;
	}
	public function set color1( value:Array ):void{
		data[ "color1" ].value = value;
	}

	public function get color3():Array{
		return data[ "color3" ].value;
	}
	public function set color3( value:Array ):void{
		data[ "color3" ].value = value;
	}

	public function get point3():Array{
		return data[ "point3" ].value;
	}
	public function set point3( value:Array ):void{
		data[ "point3" ].value = value;
	}

	public function get point1():Array{
		return data[ "point1" ].value;
	}
	public function set point1( value:Array ):void{
		data[ "point1" ].value = value;
	}

	public function get point2():Array{
		return data[ "point2" ].value;
	}
	public function set point2( value:Array ):void{
		data[ "point2" ].value = value;
	}
}