サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

asfunction

ID: FN0110011 Product: Flash

Platform: All
Version: 5.0 and above

シンタックス
asfunction:function, パラメータ

[訳者註] MXおよびMX 2004のオンラインヘルプでは、「asfunction:function, "parameter"」と引数パラメータ(parameter)にダブルクォーテーション(")がついています。これは、引数がストリングで渡されることを示していると考えられます。しかし、'asfunction'プロトコルそのものが、ストリングとして渡されます。したがって、引数パラメータには、実際上ダブルクォーテーションをつけません。

引数
function   'function'の名前(識別子)。

パラメータ   引数functionで指定した'function'に渡すストリング。

戻り値
なし。

説明
プロトコル; HTMLテキストフィールドのURLに関する特別のプロトコル。HTMLテキストフィールドでは、テキストはHTMLのAタグを使って、ハイパーリンクにすることができます。AタグのHREF属性には、HTTPやHTTPS、FTPなどの標準プロトコルのURLが指定できます。'asfunction'プロトコルは、Flash専用の追加プロトコルで、リンクからActionScriptの'function'を実行することができます。

Player
Flash 5以降。


このサンプルでは、MyFuncという'function'がスクリプトの最初の3行で定義されています。TextFieldオブジェクトmyTextFieldは、HTMLテキストフィールド[*1]に設定されています。テキストの"Click Me! "は、テキストフィールドの中のハイパーリンクです。'function'のMyFuncは、ハイパーリンクをクリックすると呼び出されます。以下が、そのスクリプトです。

[訳者註*1]「HTMLテキストフィールド」とされているのは、[プロパティインスペクタ]で[テキストをHTMLとしてレンダリング]をオンに設定しておくことを意味するものと思われます。あるいは、'TextField.html'プロパティを'true'に設定すれば、スクリプトで同じ処理を行うことができます(以下のサンプルに[訳者挿入]としてステートメントを追加)。

function MyFunc (arg) {
   trace ("クリックされました! 引数は"+arg);
}
myTextField.html = true;   // [訳者挿入] スクリプトでHTMLレンダリングをオンに設定
myTextField.htmlText = "<A HREF='asfunction:MyFunc,Foo'>Click Me!</A>";

ハイパーリンクをクリックすると、以下の結果が[出力]ウィンドウに表示されます。

クリックされました! 引数はFoo

[訳者註] MX 2004のオンラインヘルプでは、サンプルスクリプトで'TextField.htmlText'プロパティに設定するテキストが、つぎのようにダブルクォーテーション(")をエスケープせずに用られています。これは、シンタックスエラーになります。

myTextField.htmlText ="<A HREF="asfunction:MyFunc,Foo ">Click Me!</A>";

英語版ではこの誤りが修正され、つぎのように記載されています。

myTextField.htmlText ="<A HREF=\"asfunction:MyFunc,Foo \">Click Me!</A>";

バックスラッシュ(\: HTMLでの表示上全角を使用しています)は、日本語環境では円記号(\)で替えます。ところが、MacOS X環境では、ダブルクォーテーション(")を\でエスケープしようとすると、シンタックスエラーが発生してしまいます(\を使用しなければならないようです)。ですから、上記サンプルは訳者の判断により、シングルクォーテーション(')を用いています。

出典
ActionScript Dictionary (Flash MX 2004英文改訂版)より邦訳。

_____

作成者: 野中文雄
更新日: 2003年12月17日 Flash MX 2004の「ActionScript Dictionary」(英文改訂版)を元に字句の修正および訳者註追加
更新日: 2003年8月8日 Flash MXの「ActionScript Dictionary」(英文改訂版)を元に字句の修正
作成日: 2001年10月19日


Copyright © 2001-2003 Fumio Nonaka.  All rights reserved.