メイン 迷える子羊の部屋【初心者専用】 HTMLからのFlash内のメソッド呼び出しについて | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
rodem | Åê¹ÆNo.12577 投稿日時: 2004-11-22 23:37 |
新米 居住地: 投稿: 3
使用環境:
WinXP,Flash MX2004 |
HTMLからのFlash内のメソッド呼び出しについて 初めて投稿します。Flash初心者です。
HTMLからFlash内のメソッド?(アクションスクリプト?)を 呼び出すことは可能でしょうか? 例えば、Flash以外の部分に配置されたボタンがクリックされたときに (Flashオブジェクト).onClick(); みたいにflash内のアクションスクリプトを呼び出し、表示内容を更新することは可能でしょうか? ご存知の方がおられましたら、ご教授ください。 よろしくお願いいたします。 |
野中文雄 | Åê¹ÆNo.12589 投稿日時: 2004-11-23 12:57 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: HTMLからのFlash内のメソッド呼び出しについて ご使用の環境は、プロフィールに記入しましょう。
引用: rodemさんは書きました: 「HTMLから」ということは、JavaScrpitはお使いになれるということでしょうか? 電話やメールで道を尋ねる際には、目的地だけでなく、ご自分がどこにいるのかあるいはどこまでは行けるのかという情報を必ず伝えられるはずです。同じように、ご自分の現段階の知識や理解についてもご説明が必要です(ちなみに、「初心者」というのはご説明にはなりません。→【初心者なので?】)。 引用: HTMLからFlash内のメソッド?(アクションスクリプト?)を JavaScriptやHTMLについての基本的な知識をおもちという前提で、参考資料を掲げます。日本語の情報は、古いものばかりのようです。 Macromedia Flash TechNotes: 「An example of communication between JavaScript and Macromedia Flash」(2003年1月6日更新) 「Different approaches to setting variables in a Flash movie」(2000年2月8日作成) 「Flash Methods」(Flash Player 5) 「Using JavaScript with Flash Player」(Flash Player 2) 「Flash4で新しくサポートされたスクリプトメソッド」 「Shockwave Flash のメソッド」(Flash Player 2) 「JavaScript でムービーを制御する」(Flash Player 2) Flashのfunction(関数)を、直接呼出すことはできないと思います。 引用: 例えば、Flash以外の部分に配置されたボタンがクリックされたときに |
rodem | Åê¹ÆNo.12596 投稿日時: 2004-11-23 15:21 |
新米 居住地: 投稿: 3
使用環境:
WinXP,Flash MX2004 |
Re: HTMLからのFlash内のメソッド呼び出しについて 引用:
失礼いたしました。私の環境は、WindowsXP SP2, Flash MX 2004です。 引用:
はい。基本的なJavaScriptやHTMLの知識はございます。 引用: HTMLからFlash内のメソッド?(アクションスクリプト?)を (省略) 参考資料に挙げていただいたものの中で、以下のものが私の実現したいことに近いです。 引用:
この中では、HTMLのボタンからJavaScipt経由でFlashのPlay()やStop()を呼び出しているように思います。 しかし、野中様の結論として 引用:
というのは、なぜなのでしょうか?ご解説いただけませんでしょうか? あと、ご指摘いただきましたように 引用:
まさにそのとおりだと思いますので、私の実現したいこと、試してみたことを詳細に書きます。 実現したいことは、HTML内に複数のボタンを設け、ボタンが押されるたびにFlash内のTextFieldの文字列がボタンに応じて更新されるようなものを作りたいと考えております。 そのために、まず、Flash側で、アクションスクリプトを記述するところで、 function show(){ objColor = new Color(this); objColor.setRGB(0x003366); // this.loadVariables("Messages.txt",0); } というようなダミーの関数を用意し、パブリッシュしました。 そしてパブリッシュしたHTMLにボタンとJavaScriptを追加しました。 <script language="JavaScript"> function test(){ Message1.show(); // alert("test"); } </script> <body bgcolor="#ffffff"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="400" height="15" name ="Message1" id="Message" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="Message.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="Message.swf" quality="high" bgcolor="#ffffff" width="400" height="15" name="Message" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> <td width="48" bgcolor="#FFFFFF"><a href="java script:;" onMouseOver="test()"><img src="./regist_on.gif" width="48" height="41" name="wizard" border="0"></a></td> 私としては、マウスオーバーした際に、JavaScriptまでは到達していることは確認しているのですが、 Message1.show()という形式でアクションスクリプトを呼び出しているつもりが反応がありませんでした。 これは、記述の方法が悪いのか、そもそも自分で実装したメソッドは、外部から呼び出せないのかどちらなのでしょうか? ご教授お願いいたします。 |
野中文雄 | Åê¹ÆNo.12599 投稿日時: 2004-11-23 17:22 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: HTMLからのFlash内のメソッド呼び出しについて 状況は、ほぼ把握できました。
Play()やStop()は、FlashメソッドとしてJavaScriptに対して提供されたものです。Flashメソッドに含まれない関数・メソッドや、ユーザー定義関数は、JavaScriptから呼出すことはできません。 引用: rodemさんは書きました: rodemさんの実現されたいことは、まさにユーザー定義関数をJavaScriptから呼出すことだと理解します。 FlashメソッドはFlash Player 2で導入され、現在でも関数の実装されないFlash 4のレベルのようです。ここでは、あくまでFlashメソッドを使って、処理を考えなければなりません。 引用: 実現したいことは、HTML内に複数のボタンを設け、ボタンが押されるたびにFlash内のTextFieldの文字列がボタンに応じて更新されるようなものを作りたいと考えております。 関数の代用として利用できるメソッドは、TCallFrameまたはTCallLabelくらいしかないでしょう。このメソッドは、Flash Player 4互換のcall()アクションに相当します(Flash Player 5以降では非推奨)。 指定したフレームアクションを、異なるフレームから再生ヘッドを移動させずに実行するアクションです。引数が必要であれば、変数を設定するsetVariableメソッドと組合わせて、工夫する必要があります。 参考: 「callFrame」(Directorから同値のコマンドcallFrameを使って処理を行うサンプル) |
rodem | Åê¹ÆNo.12607 投稿日時: 2004-11-24 1:54 |
新米 居住地: 投稿: 3
使用環境:
WinXP,Flash MX2004 |
Re: HTMLからのFlash内のメソッド呼び出しについて ご返信ありがとうございました。
引用: Play()やStop()は、FlashメソッドとしてJavaScriptに対して提供されたものです。Flashメソッドに含まれない関数・メソッドや、ユーザー定義関数は、JavaScriptから呼出すことはできません。 よくわかりました。ご回答ありがとうございました。 |
Fla4man | Åê¹ÆNo.12616 投稿日時: 2004-11-24 12:00 |
職人 居住地: かまくら 投稿: 517
使用環境:
WinMe,Win2000, Flash4,アズさん,大仏、delphi |
Re: HTMLからのFlash内のメソッド呼び出しについて ちょっと疑問なんですがcallとか変数トリガーのほかに
Flash5以降の前提ならば gotoと onenterframeの組み合わせではだめなんでしょうか? Flash4でもcallよりも普通のフレーム内関数呼んで停止させるほうが使いやすいようにも思います。
|
関たかまさ | Åê¹ÆNo.12619 投稿日時: 2004-11-24 13:38 |
常連 居住地: 埼玉 投稿: 61
使用環境:
WinXP Pro(sp1) FlashMX 2004 Pro 7.2 |
Re: HTMLからのFlash内のメソッド呼び出しについて こんにちわ
僕は直接のメソッドコールではないですが、
こんな実装で実現しています。 メリットとしては、(実際はそうではないですが)ほぼメソッドをコールしているのと同じノリで使えます。 私は上記で言う「sendStr」にパラメータや引数をデリミターを付加した文字列にして、Flash側にあるFunctionで振り分けして処理を書いています。 ご参考まで |
ゲスト | Åê¹ÆNo.12669 投稿日時: 2004-11-25 13:37 |
Re: HTMLからのFlash内のメソッド呼び出しについて なるほど?
SetVariable()で値が設定される変数を watchメソッドで監視して、そのコールバック関数に処理を書いておくというわけですね。 こう書けばFlash側の処理をすっきりと呼び出せますね。目からウロコでした。 サンプルを作って試してみました。たぶん、rodemさんがやりたい事ってこんな感じじゃないでしょうか。 (Objectを生成せず、直接MovieClipのプロパティをwatchメソッドで監視させました。) |
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |