ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript と flash_javascript スキル間の対話型通信に関する基本チュートリアル

Javascript と flash_javascript スキル間の対話型通信に関する基本チュートリアル

WBOY
WBOYオリジナル
2016-05-16 19:02:051069ブラウズ

以下は、JavaScript を使用した Flash ファイルと HTML ファイル間の直接通信の例です。各例には簡単な手順が含まれています。

この記事では、Flash/JavaScript 通信の 3 つの基本的な方法について説明します。
JavaScript から Flash への通信 ----使用Flash プレーヤーの JavaScript メソッド
Flash to JavaScript 通信 ----Flash の fs コマンドを使用
Flash to Flash 通信 --------ローカル接続オブジェクトを使用 または、上記 2 つの技術を組み合わせます

すべてのブラウザがスクリプトを重視しているわけではありません。Flash プレーヤーと通信するには、Flash プレーヤーが「リッスン」できるようにブラウザにフックが組み込まれている必要があります。ブラウザは次のとおりです。
Netscape Navigator。 3.0 ~ 4.7x、および Netscape 6.2 以降
(Windows 95/98/NT/2000/XP または MacOS、Java および LiveConnect を使用可能)
Internet Explorer 3.0 以降
(Windows 95/98/NT) /2000/XP のみ; ActiveX が許可されます)


JavaScript から Flash への通信

この例では、Flash メソッドの使用方法を示します。 HTML 入力テキストからページ内の Flash ファイルに変数を送信します。 HTML 入力データは、Flash の SetVariable メソッドを通じて Flash ファイルに送信されます。

例を表示します。
ソース ファイルのダウンロード: javascript_to_flash .zip(17k)

手順:

Flash
1. 新しいファイルを作成し、javascript_to_flash.fla として保存します。
2. テキスト ツールを使用して、ステージ上にテキスト フィールドを作成します。
3.プロパティ パネルで、ドロップダウン リストから [ダイナミック テキスト] を選択し、変数列に「myVar」と入力します。
注: 簡単にするために、 Instance を使用し、 myVar.text を使用して myVar の値を変更するのが最良の習慣です。 Flash4 および Flash5 との互換性を考慮して、変数名の形式を使用します。
5. HTML ファイルと SWF ファイルをパブリッシュします。

次の作業です。 Dreamweaver に転送します。もちろん他の HTML エディタでも可能です
1. 前の手順で公開した HTML ファイルを開きます
2. 生成された SWF ファイルと OBJECT /EMBED タグを挿入します
(1) を挿入します>Media>Flash を選択し、この Flash を選択します
(2) コード ビューに切り替え、選択した
タグと
タグを変更する必要があります (3) OBJECT タグに id= を挿入しますmyFlash"
codebase="http://download.macromedia.com/ pub/shockwave/cabs/
flash/swflash.cab#version=5,0,0,0" width=366 height=142 id="myFlash">
注: コードを貼り付けてコピーする場合は、必ず削除してくださいそうしないと、エラーが発生する可能性があります。プロパティ パネルに ID を直接入力することもできます
(4) EMBED タグに name="myFlash" と swLiveConnect="true" を挿入して、id 属性が確実に設定されるようにします。コードは次のようになります:

type="application/x-shockwave-flash" pluginspage= "http://www.macromedia.com/shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash" name="myFlash" swLiveConnect="true">


3. フォーム フィールドを作成します
(1) デザイン ビューに戻ります
(2) テキスト フィールドを挿入します ([挿入] > [フォーム オブジェクト] > [テキスト フィールド])。フォーム フィールドを追加するかどうかを尋ねられたら、[はい] を選択します。
(3) テキスト フィールドの HTML タグを次のように変更します。



テキスト フィールドの内容が変更されるたびに、onChange がトリガーされ、doPassVar() 関数が呼び出されます。 🎜>4. 変数値を渡す Javascript 関数を作成します。


タグに次の Javascript をコピーします。

5. ファイルを保存します。それをテストします (F12)


Flash から JavaScript への通信

HTML から Flash にデータを送信したり、その逆を行うことができます。この例では、Flash の Fscommand を使用してデータを送信する方法を示します。

例の表示: 例 2
ソース ファイルのダウンロード: flash_to_javascript.zip (10K)

簡単な手順:
Flash で新しいファイルを作成
して保存します。 as flash_to_javascript.fla
テキスト フィールドを作成し、入力テキストに設定し、表示されるように「border」を選択し、その変数を inputVar として指定します。
ボタンを作成し、ボタンに次の内容を追加します。

on (release) {
fscommand ("send_var", inputVar);
保存文件,导出HTML和SWF

Dreamweaver中
1.打开导出HTML文件,修改标签,结果同上:
codebase="http://download.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=5,0,0,0"
width=366 height=142 id="myFlash">

width=366 height=142
type="application/x-shockwave-flash" 

pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash" name="myFlash" swLiveConnect="true">

2. 插入如下的Javascript到标签内:
<script> <BR><!-- <BR>var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1; <BR>function myFlash_DoFSCommand(command, args) { <BR>var myFlashObj = InternetExplorer ? myFlash : document.myFlash; <BR>alert (args); <BR>} <BR>if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && <BR>navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) { <BR>document.write('<SCRIPT LANGUAGE=VBScript\> \n'); <BR>document.write('on error resume next \n'); <BR>document.write('Sub myFlash_FSCommand(ByVal command, ByVal args)\n'); <BR>document.write(' call myFlash_DoFSCommand(command, args)\n'); <BR>document.write('end sub\n'); <BR>document.write('</script>\> \n');

//-->



Flash和Flash的通信
通过上面两种方法的混和使用,同一HTML中两个或者更多的Flash直接可以相互传送消息. 从一个flash使用fscommand传送消息给Javascript,使用Flash的Javascript methods把消息传给另外一个flash

详细的看这里:Flash影片之间的通信示例

从Flash MX开始,local connection对象可以用来在flash之间传送消息. 这使得同一HTML中的或者位于两个浏览器窗口中的两个flash影片可以相互发送消息,而不必使用Javascript或者fscommand
详细的看这里:在Flash MX中使用local connection对象(英文)

本站的localConnection教程:http://www.blueidea.com/tech/multimedia/2003/739.asp

附可控制Flash Player的Javascript方法一览表:

Play() ---------------------------------------- 播放动画 
StopPlay()------------------------------------停止动画 
IsPlaying()----------------------------------- 动画是否正在播放
GotoFrame(frame_number)---------------- 跳转到某帧 
TotalFrames()------------------------------- 获取动画总帧数 
CurrentFrame()------------------------------回传当前动画所在帧数-1 
Rewind()-------------------------------------使动画返回第一帧 
SetZoomRect(left,top,right,buttom)-------放大指定区域 
Zoom(percent)------------------------------改变动画大小 
Pan(x_position,y_position,unit)------------使动画在x,y方向上平移 
PercentLoaded()----------------------------返回动画被载入的百分比 
LoadMovie(level_number,path)----------- 加载动画 
TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数 
TGotoLabel(movie_clip,label_name)------ movie_clip跳转到指定标签 
TCurrentFrame(movie_clip)--------------- 回传movie_clip当前帧-1 
TCurrentLabel(movie_clip)-----------------回传movie_clip当前标签 
TPlay(movie_clip)---------------------------播放movie_clip 
TStopPlay(movie_clip)----------------------停止movie_clip的播放 
GetVariable(variable_name)-----------------获取变量 
SetVariable(variable_name,value)-----------变量赋值 
TCallFrame(movie_clip,frame_number)---call指定帧上的action 
TCallLabel(movie_clip,label)----------------call指定标签上的action 
TGetProperty(movie_clip,property)--------获取movie_clip的指定属性 
TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。