asfunctionってなんぞ?

| | コメント(0) | トラックバック(0)

asfunction。FLASHのみでの開発をしていても、滅多にお目にかからないスクリプトだと思います。
FLASHのヘルプにもありますが、これで何が出来るかというと
『HTMLテキストのaタグから、FLASH内部のファンクションを実行出来る』
といった、使い方によっては恐ろしく便利な荒くれスクリプトです(゜□゜)

使い方は至って簡単。
下準備としましては、表示を行うダイナミックテキスト枠にて、HTMLタグを処理出来るよう設定する事です。今回は、『mainText』というインスタンス名がついたテキスト枠を例に取りますと

mainText.html = true;
mainText.htmlText = "ここに使用可能なHTMLタグを含む文字列を記述します";

間違えやすい点は .text が .htmlText に変わる事でしょうか。

さてさて、これでHTMLテキストを表示する準備は出来ました。
次は『hogehoge』というfunctionをFLASH内部で生成し、それをHTMLのaタグから実行する処理を説明します。

//ファンクション設定
function hogehoge(){
  trace("ほげほげ〜(゜□゜)"); //テストなのでなんでもいいです(笑
}
//テキスト設定
mainText.html = true;
mainText.htmlText = "<a href=\"asfunction:hogehoge\">テキストリンク文</a>";

注目は最終行!(一部変な記号[ \ ]が入っている理由は後ほど説明します。今は無いものとしてお考え下さい)
<a href="asfunction:hogehoge">
この部分ですね。普段HTMLのソースに用いられるaタグのhrefにはURLなんかが書いてあるものですが、FLASH内部のスクリプトを実行する時は
asfunction + コロン[ : ] + ファンクション名
という表記をする事で、ファンクション名の部分に記述されたfunctionを実行する事が出来ます。

更にもう一歩踏み込んで、各リンクから、変数も送りたい場合はこうなります
asfunction + コロン[ : ] + ファンクション名 + カンマ[ , ] + 変数
スクリプトにするとこんな感じです(゜□゜)

//ファンクション設定
function hogehoge(value1){
  trace("送られてきた値=" + value1); //テストなのでなんでもいいです(笑
}
//テキスト設定
mainText.html = true;
mainText.htmlText = "<a href=\"asfunction:hogehoge,1\">1を送信</a>\n";
mainText.htmlText += "<a href=\"asfunction:hogehoge,2\">2を送信</a>\n";
mainText.htmlText += "<a href=\"asfunction:hogehoge,3\">3を送信</a>\n";

各テキストリンク「1を送信」「2を送信」「3を送信」をクリックすると
それぞれに『送られてきた値=数値』というトレース文が出力されるはずです。
※おそらく型はNumberではなくStringでしょうから、数字の扱いには若干注意が必要・・・かも?

ついでに書いてしまいますが、上記スクリプトの最終行にて、ダブルクォーテーション[ " ]をテキストとして表示したいのに、その文字列をダブルクォーテーションで囲まないといけない場面に遭遇しています。
この時、文字列中のダブルクォーテーションの前にバックスラッシュ[ \ ]を書く事で、文字列の閉じ記号ではなく、文字としての記号である、といった解釈をしてくれるそうです。

いかがでしたでしょうか?(゜□゜)
これの主な使い方といえばやはり、『テキストやXMLなど、外部から取得してきたテキストデータに、実行させるファンクションを割り当てたい』という時が最も効果的でしょう。
よく見かける更新履歴にasfunctionリンクを貼り、クリックでFLASH内部がそのコンテンツへ移動する、といった仕組みがあるのと無いのとでは、ただでさえGUIで毛嫌いされているFLASHですから、ナビの親切さは操作感のポイントアップになる・・・といいな(汗
ま、毎回こんな投げやりな終わり方だな・・・まいっか(゜□゜; )

こういった、あるんだけど普段使わないから忘れられ、いざ必要になった時には思い出せなくて『出来ないんだよ、きっと』と自分を騙して慰めるようなロンリースクリプトを、どんどん書いていけたらいいなぁと思います(笑

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: asfunctionってなんぞ?

このブログ記事に対するトラックバックURL: http://graphicker.jp/flextime/blog/cgi-bin/mt-tb.cgi/90

コメントする

このブログ記事について

このページは、ヨウスケが2008年4月 3日 14:04に書いたブログ記事です。

ひとつ前のブログ記事は「varってなんぞ?」です。

次のブログ記事は「onなんとか=function()ってなんぞ?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1