2005年6月19日

何故かFlash、そしてLoadVars。

た~らこ~、たぁ~らこぉ~、たっぷりた~らこ~(ぐるぐるぐる…)
こんにちは、キューピーの曲が頭から離れないあに山です。

最後のオチは明太子だからタイコなんだね…。

さて、昨日はJavaとFlashしてました。
「またまた浮気性なんだからーっ、もうっ」と、
うっかり あに山の背中をバンと叩いたあなた。
違います。違いますよー。

父がね、Flashいじってるんです。
そんで、ちょっとお役にたてるかな?…てなもんで
ActionScriptについて、勉強した次第。

めも。

perlやPHPでよく使う
( 条件式 ) ? 真の時の実行内容 : 偽の時の実行内容
って式は ternary と言うらしい。そうらしい。

Java wiz SWT
SWTメモ - レイアウト編
SWTサンプル by Project Amateras
SWTの使い方
そういう訳で、Javaの方はSWTいじってます。
UIあるとやっぱり楽しいよねぇ。

Jakarta POIを用いたExcelファイルの入出力 ~POI HSSFを用いたExcel簡単入出力~
SWTを勉強する発端は、こっち。
Excelファイル操作をしようとして
ダイアログとか表示したくなって、ズルズルとSWTへ。

Depeche Mode 2005-2006ツアー
いいなぁ、いいなぁ。ドイツでやるでよ。
いいなぁ、いいなぁ。行きたいなぁ。

なんですか、あのー、
Flashって、なんかクセあるよね。

外部テキストデータん中に、FORMのGETん時みたいな値…

 key1=value1&key2=value2&key3=value3

…とかって書いておくと、勝手に読み込み時に
変数名keyにvalueが入ったり、
ダイナミックテキスト名keyのtextにvalueが入ったり
するそうですな。

便利は便利なんだけど、普通の外部テキスト読み込む時と
どっかのURLからPOSTやGETされてくる値を読み込む時が
同じ方法ってーのが、意外過ぎて驚いた。

で、もともとGETの時の値を理解している人間はいいんだけど
Flashのサンプルとか見てると、だいたい…

 key1=value1
 &key2=value2
 &key3=value3

…とかって書いてあるから、初めてFlashからいじった人は
「&key って書くと変数が出来る」とかって思い込んじゃうよね、これ。

&は本来、keyとvalueの1セットを繋げる意味があるって
わかんないんじゃないかなぁ…。

あと、FORMの内容って、1つのkeyに対して、2つ以上の値が入る事あるでしょ。
checkboxとか、selectの複数選択とかね。
そういう場合、PHPならkeyの後に[]を追加しておくことで
自動的に 変数key は配列になって、全ての値を取得する事が出来るんだけど。

ここで試しに、…

name=aaa&name=bbb

…と書いて読み込ませてみたら、あっさりaaaは上書きされたのか
bbbとしか表示してくれなかったのでありました。
う"ーん。

それといとも簡単に「インスタンス」って書いてあるのも驚いた(笑)
クラスもあるし、コンストラクタがどーこーって書いてあるし
完全にOOPやんけ。

てな訳で、意外に手強いActionScript。
本格的にいじったら楽しそうだなぁ…とか思いつつも
私はJavaのちょっとした試験を控えているので
それどころではないのであった(笑)

めも。

Flashで外部テキストファイルを読み込むには
loadVariables関数を使う。

最近のFlashだと、LoadVarsクラスがあって
それを使うと良いらしい。
onLoadメソッドは、loadVariablesを呼ぶ前に使い、
ファイルの内容が読み込み終わった時の実行内容を設定する。


lv = new LoadVars();
lv.onLoad = function( success ) {
 if ( success ) {
// 読込終わった時の実行内容
 }
}
lv.loadVariables( "テキストファイル名" );

onLoadのfunctionは、
オリジナル関数を用意してもOKらしい。

lv = new LoadVars();
lv.onLoad = オリジナル関数名();
lv.loadVariables( "テキストファイル名" );

function オリジナル関数名( success ) {
 if ( success ) {
  // 読込終わった時の実行内容
 }
}

テキストファイルの内容が、key=valueの形式でない時や
普通のテキストとして読込たい時には、
loadVariablesではなく、loadを使えばいいらしい。
onLoadでなく、onDataを使うのもポイントっぽい。


lv = new LoadVars();
lv.onData= function( src ) {
 splitText = new Array();
 splitText = src.split( "\n" );
 for ( var i = 0; i < splitText.length; i++ ) {
  trace( splitText[i] );  
 }
}
lv.load( "テキストファイル名" );

Posted by anigon at 05:47 PM

「Schnappi in iPod。」へ戻る | 「寂しいアメリカGP。」へ進む

上へ戻る