Flash Builderのコードネームの意味
burrito/bəríːtou/
名 詞〘メキシコ料理〙ブリート:ひき肉などのトルティーヤ(tortilla)巻き.
[スペイン語]
トルティーヤか。
Flash Builderのコードネームの意味
burrito/bəríːtou/
名 詞〘メキシコ料理〙ブリート:ひき肉などのトルティーヤ(tortilla)巻き.
[スペイン語]
トルティーヤか。
Base64形式でエンコードしたJPEGファイルの文字列をas3でデコードする方法
JPEGのデコードは、AS3 JPEG Decoder – ByteArray.orgを利用
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.utils.ByteArray; import mx.utils.Base64Decoder; import org.bytearray.decoder.JPEGDecoder; [SWF(width="1024", height="768", frameRate="60", backgroundColor="#f5f2f0")] public class TestBase64 extends Sprite { private static const base64Data:String = "/9j/4AAQSkZJRgABAgEASABIAAD/4R7sRXhpZgAATU0AKgAAAAgADgEAAAMAAAABAgAAAAEBAAMAAAABAgAAAAECAAMAAAADAAAAtgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAESAAMAAAABAAEAAAEVAAMAAAABAAMAAAEaAAUAAAABAAAAvAEbAAUAAAABAAAAxAEcAAMAAAABAAEAAAEoAAMAAAABAAIAAAExAAIAAAAeAAAAzAEyAAIAAAAUAAAA6odpAAQAAAABAAABAAAAASwACAAIAAgACvyAAAAnEAAK"; //本当はもっと長く続く public function TestBase64() { var decoder:Base64Decoder = new Base64Decoder(); decoder.decode( base64Data ); var ba:ByteArray = decoder.toByteArray(); var myDecoder:JPEGDecoder = new JPEGDecoder(); myDecoder.parse(ba); var width:uint = myDecoder.width; var height:uint = myDecoder.height; var colorComponents:uint = myDecoder.colorComponents; var numComponents:uint = myDecoder.numComponents; var pixels:Vector.<uint> = myDecoder.pixels; var bitmapData:BitmapData = new BitmapData ( width, height, false ); bitmapData.setVector ( bitmapData.rect, pixels ); var bmp:Bitmap = new Bitmap( bitmapData ); addChild( bmp ); } } }
JPEGのEncoderは、as3corelibにあるが、Decoderは、こちら
AS3 JPEG Decoder – ByteArray.org
メモメモ。
FN1008001 – 3次元空間における面の向きを調べる – Flash : テクニカルノート
3次元座標空間で面を扱うとき、その向きを知りたいことがあります。面の向きは、面に対する垂線のベクトルで定められます。これを「法線ベクトル」と呼びます。なお、本稿では面をDisplayObjectインスタンス、または3頂点の3次元座標で表される3角形で考えることにします。
メモメモ
文字列で指定されたクラス名からクラスの参照を得るには、flash.utils.getDefinitionByName()関数を用います。引数の文字列にクラス名を指定すれば、クラスの参照が返ります。クラスの参照を格納する変数には、Classでデータ型を指定します。
メモだが、
as3でのCSVのパースには、これが便利
[ArrayElementType("Point")] private var _arr /* of Point */:Array;
point1が交点。
var point0:Point, point1:Point, point2:Point; point0 = new Point( 50, 100 ); point1 = new Point( 200, 200 ); point2 = new Point( 100, 300 ); point0.offset( -point1.x, -point1.y ); point2.offset( -point1.x, -point1.y ); var vector0:Vector3D, vector1:Vector3D; vector0 = new Vector3D( point0.x, point0.y, 0 ); vector1 = new Vector3D( point2.x, point2.y, 0 ); var angle:Number = Vector3D.angleBetween( vector0, vector1 ); //このときはまだラジアン var d:Number = angle * 180/Math.PI;
もっと早い書き方があるような気がするが、なんとか算出できた。
地味に使うケースがあるそうなのでメモ。
var point0:Point, point1:Point; point0 = new Point( 50, 100 ); point1 = new Point( 200, 200 ); var inter:Point = Point.interpolate( point0, point1, 0.5 ); //ここの0.5が中間地点を示す
as3でSVGを読み込むには、Frocessingライブラリが使える。
package { import flash.display.Sprite; import frocessing.shape.FShapeSVG; public class TestSVG extends Sprite { [Embed(source="./assets/foo.svg", mimeType="application/octet-stream")] private var Svg:Class; public function TestSVG() { super(); var svg:XML = XML( new Svg() ); //shapeデータの生成 var shapedata:FShapeSVG = new FShapeSVG(svg); //Spriteに変換 var sprite:Sprite = shapedata.toSprite(); //表示 addChild( sprite ); } } }