>  기사  >  웹 프론트엔드  >  Javascript와 flash_javascript 기술 간의 대화형 통신에 대한 기본 튜토리얼

Javascript와 flash_javascript 기술 간의 대화형 통신에 대한 기본 튜토리얼

WBOY
WBOY원래의
2016-05-16 19:02:051069검색

다음은 Javascript를 사용하는 Flash와 HTML 파일 간의 직접 통신에 대한 몇 가지 예입니다. 각 예에는 간단한 단계가 있습니다.

이 문서에서는 Flash/Javascript 통신의 3가지 기본 방법에 대해 설명합니다.
Javascript에서 Flash로 통신----사용 Flash Player의 javascript 방식
Flash to Javascript 통신----Flash의 fscommand 사용
Flash to Flash 통신------------로컬 연결 객체 사용 또는 위 2가지 기술을 결합

모든 브라우저가 스크립트를 중요하게 생각하는 것은 아닙니다. Flash Player와 통신하려면 Flash Player가 '수신'할 수 있도록 브라우저에 내장 후크가 있어야 합니다.
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만 허용됨)


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와의 호환성을 위해
4. 파일 저장
5. HTML 파일 및 SWF 파일 게시

다음 작업 단계 물론 다른 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를 사용하여 데이터를 HTML로 보내는 방법을 보여줍니다. Javascript.

예제 보기: 예 2
소스 파일 다운로드: flash_to_javascript.zip(10K)

간단한 단계:
Flash에서 새 파일을 만들고
저장합니다. as flash_to_javascript.fla
텍스트 필드를 만들고 입력 텍스트로 설정한 다음 볼 수 있도록 "테두리"를 선택하고 해당 변수를 inputVar로 지정합니다.
버튼을 만들고 버튼에 다음과 같이 추가합니다.

on(릴리스) {
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으로 문의하세요.