asfunctionってなんぞ?
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
コメントする