【CASA】ちょっとした変数を外部ファイルで扱う

気が付けばCASAネタを2ヶ月以上更新して無かったわけですが。
ぱぱっと更新したいがために、簡単なネタをチョイスするあたり、すでにサボり癖がついている模様。

はい、FlashにはLoadVarsという外部ファイルから変数を読み込むオブジェクトがありますが、クラスベースで書くとなんか使いにくいというか、addEventListenerとかいまさら書きたくないとか、とにかくなんかうっとうしいのです。特に、CASAを使っていると。

はい、そこで便利なものがあります。

VarsLoad

単語の前後を逆にしただけという非常にややこしいクラス名。
必死に考えたが、良い名前が名前考えつかなかったと思われる。

使い方、というほどのものでもなく超シンプル。
XmlLoadのLoadVars版。

Actionscript:
  1. import  org.casaframework.load.data.VarsLoad
  2.  
  3. var _vl:VarsLoad = new VarsLoad("num.txt");
  4. _vl.addEventObserver( this, VarsLoad.EVENT_LOAD_COMPLETE, "onLoadComplete");
  5. _vl.start();
  6.  
  7. function onLoadComplete() {
  8. _vl.getValue("a");
  9. _vl.getValue("b");
  10. }

インスタンス生成時に指定してるファイルの中身は、LoadVarsで扱うときと同フォーマットで書いておく。
a=123&b=456
こんな感じ。

XmlLoadのときと同じく、ロード完了時のイベント登録しといて、start実行して、ロード完了したらイベント発生して、登録した関数が呼ばれる。
テキストファイルで指定した変数を引っ張り出したいときはgetValueに引っ張り出したい変数名をStringで指定するだけ。

あと、こいつはsendAndLoadもできる。
たとえばCGIとかにで引数指定してデータ引っ張ってくる場合はstartする前にsetValueするだけ

Actionscript:
  1. var _vl:VarsLoad = new VarsLoad("test.cgi", "POST");
  2. _vl.addEventObserver( this, VarsLoad.EVENT_LOAD_COMPLETE, "onLoadComplete");
  3. _vl.setValue("name", "minomix");
  4. _vl.setValue("page", "5");
  5. _vl.start();

ってな感じ。
ついでに説明、インスタンス生成する際の第2引数でGETもしくはPOSTを指定できます。
setValueの引数はいっこめが変数名、にこめが値。

ロード後は同じ。
煮るなり焼くなり好きにどうぞ。

カウンターとかXML使うまでも無いちょっとした変数を外部ファイルなりプログラムから引き出したいときはこいつが便利です。
そんな感じ。

Leave a reply