こんにちは。きんくまです。
Graphics.drawPathなどPlayer10からの描画機能をするときに、Vectorは必須です。
VectorではVectorどうしをくっつけるconcatという関数がありまして、それを使う場面がよくあります。
ちなみに同じ配列のArrayのときは全く使ったことがなかったです。
って、concatを昨日まで全然知らなくて、Vectorのデータを手で入れていたのはナイショです。
そんで、Vector.concatの挙動を調べていたんですが、思ったようにならなかったのでメモです。
package { import flash.display.Sprite; import flash.events.Event; /** * ... * @author KinkumaDesign */ public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); var v1:Vector.<int> = Vector.<int>([0, 1]); var v2:Vector.<int> = Vector.<int>([2, 3]); var v3:Vector.<int> = Vector.<int>([4, 5]); var v4:Vector.<int> = new Vector.<int>(); var v5:Vector.<int> = new Vector.<int>(); var v6:Vector.<int> = new Vector.<int>(); v4 = v4.concat(v1, v2, v3); trace(v4); //4,5,2,3,0,1 v5 = v1.concat(v2, v3); trace(v5); //0,1,4,5,2,3 v6 = v1.concat(v2).concat(v3); trace(v6); //0,1,2,3,4,5 v7 = v7.concat(v3, v2, v1); trace(v7); //0,1,2,3,4,5 } } }
ソースを見ていただくとわかると思うんですが、v4はv1,v2,v3と順番にいれていってるのに、
中身が順番にはいっていない!
v5,v6は参考までに。
だから、最初からうまくやるためには、v7のように逆順でconcatの引数をもたせてあげる必要があるんですね。
うーん。勉強になった。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ