頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


二次元のVectorをいじってみる

AS3で二次元のVectorを扱おうと、いろいろいじっておりまして、そのあたりをまとめました。

FLASHで遊ぼう! AS3:38.Vectorクラスを使う2

↑ここにはばかばかしくて書いてもいないのですが、Vectorで連想配列的なことができないか試してみました。
vector["country"] = "jp";
みたいな。

Vectorクラスの場合、Arrayと異なり、インデックスの順番が飛んで代入しただけでも実行が停止するくらいですから、、、当然無理でした(^^;


Vectorクラス関連でページを追加

AS3でVectorクラスをいじってたらいろいろと注意しないとなあ、というところが出てきたので、、、

Flashで遊ぼう! AS3:38.Vectorクラスを使う1
をアップしました。
まだ書いてないけど、もう1つくらい書くつもりで1とつけました。


AS3で文字列をsplitして一発でVectorに入れるのは無理?

コンマで区切られた文字列があって、それを分解して一発でVectorに入れる方法ってないのかなあ。
Arrayならsplitでできますよね。

サンプルを書きますと
var str:String = "apple,banana,chocolate";//コンマで区切られた文字列
var arr:Array = str.split(",");//これはOK

ところが、
var vec:Vector.<String> = str.split(",");//コンパイル時にエラー

split()メソッドの返り値の型はArrayだから当然といえば、当然なのですが。
StringクラスにはVectorを返すsplitのようなメソッドもないようだし。

splitした要素を1つずつ入れるしかないのかな?



-----------------------------------------
自己解決したので追記、、、と。

var vec:Vector.<String> = Vector.<String>( str.split(",") );

これでOKでした。


不具合の原因はガベージコレクション?

赤ちゃんの成長曲線のメインとなるグラフ表示のswfを書き換えております。

前からどうもグラフが正しく表示されないことがたまにあったんですよ。
ずーっとぐるぐるLOADING中の画像が表示されるんです。
ブラウザでリロードするとたいてい表示されるので、きっとサーバの負荷が高いせいで、データを読み込めていないんだろうと思っていたけど、いざ引っ越したのにその不具合が解消されない、、、

で、ようやく検証し始めたところ、どうもガベージコレクションの話か、、、?
ということで、対策を打ってみたところ、不具合が解消した感じ。

うまくいったのはもしかしたら気のせいかもしれないので、様子をみつつ、検証できたらネタにしようっと。


Google Maps API (FLASH)で一瞬見えるグレー

このブログの左上にある自作のブログパーツ(間寛平アースマラソンの軌跡)ですが、、、表示時に一瞬グレーが表示されるのが気になってました。
え?細かい?
えぇ、ヨメさんに細かい男だ、と言われたことがありますよん。

この一瞬グレーが表示されるのはGoogle Mapsの仕様らしく、ネット上にあるGoogle Maps APIのサンプルを見るとたいていどれも一瞬グレーが見えます。


map.addEventListener(MapEvent.MAP_READY, onMapReady);//ここでmapはMapオブジェクト

このようにリスナーを設定して、関数onMapReady内で
map.setCenter(略)
ってな感じで表示する位置とかzoomレベルとか設定、という流れになると思いますが、この関数内でmapをremoveChildしてやると一瞬グレーが表示されます(その後消えます)。

ということなので、MapEvent.MAP_READYイベントがdispatchされるまでの一瞬、このグレーが表示されるようです。
この色を設定できるのか、、、?
うーん、ドキュメント見てもそんなプロパティ見つからないが、、、?

仕方ないので、最初からSpriteのオブジェクトでカバーをして、関数onMapReady内に来たらそのカバーのalphaを1から減じていくようにしました。

で、その修正版を先ほどアップしました(ですからこのページを何度リロードしても左上の画像ではグレーは見えないはずです)。




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.