您的位置:首页 > 其它

VC使用flash简易教程

2014-09-11 18:56 453 查看
1.基本概念:

VC为Flash实现了一个CWnd的包装:CShockwaveFlash,该类实现了FlashActiveX控件的所有功能。

shockwave flash object控件有四个事件句柄(eventhandler)。分别是:FSCommand, OnProgress, FlashCall, OnReadyState。



FSCommand:flash就是给支持它的应用程序发送消息的手段。除了利用FSCommand外,shockwave flash object还提供了两个进行交互的函数,一个是CString GetVariable(LPCTSTR name),用来获得flash动画中变量name的值,该值以CString的形式返回给调用者;一个是void SetVariable(LPCTSTR name, LPCTSTR value),可以用来将flash动画中的name变量设置一个值value。但这种交互方式有比较高的耦合性,需要flash开发者及应用程序的开发
者有比较紧密的配合。但这种方式也可以一些交互性很强的flash。当然更多的是两种方式同时采用。因为这两种方法各有不同的使用背景。一般来说如果需要对整个flash和应用程序的外部行为进行控制则采用FSCommand,而如果只是需要对flash的内部动作进行响应则使用GetVariable和SetVariable。

FSCommand事件说明

FSCommand(command,args)命令有两个参数,都是字符串,你可以在flash脚本中指定任意的字符串。比如用户按下flash动画的一个按钮就发送FSCommand("bt","bt1")这样一个消息,按下另一个按钮发送FSCommand("bt","bt2"),而我们的程序 收到FSCommand消息后就对通过两个参数的不同字符串来判断用户按下的是哪个按钮。简单的说,就是在flash动画中使用FSCommand发送消息,在我们的程序接收和处理FSCommand消息。



2.VC使用flash简易教程

1. 插入Shockwave Flash Object空间(Active)

2. 给新控件添加一个ctrl变量flashUI

3. 初始化添加代码:

flashUI.LoadMovie(0,
L"C:\\Users\\Administrator\\Desktop\\touqiu.swf");

3.Flash与后台数据交互方法

LoadVars(XML)
Flash Remoting
Webservice
XMLSocket
FlashCom(FMS)

4.VC中CShockwaveFlash的常用函数
Play() 播放动画

StopPlay() 停止动画

IsPlaying() 动画是否正在播放(true,false)

GotoFrame(frame_number)
跳转到某帧(frame_number+1)

TotalFrames() 获取动画总帧数

CurrentFrame() 回传当前动画所在帧数-1

Rewind() 使动画返回第一帧

SetZoomRect(left,top,right,buttom)
放大指定区域

Zoom(percent) 改变动画大小

Pan(x_position,y_position,unit) 使动画在x,y方向上平移

PercentLoaded() 返回动画被载入的百分比(0-100)

LoadMovie(level_number,path) 加载动画 (绝对路径)

TGotoFrame(movie_clip,frame_number) movie_clip跳转到指定帧数

TGotoLabel(muvie_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的指定属性

CallFunction(CString) MFC向Flash发送信息
6. 实现MFC与Flash的通信
首先做好用来测试用的flash
在flash上面点击两个红色按钮,向MFC发送两个不同的消息:

fscommand("fs1");

fscommand("fs2");

MFC向flash发送消息:

在FLASH中,要用ExternalInterface.addCallback把能被外部调用的函数注册一下,例如:ExternalInterface.addCallback("strShow1",strShow1);

ExternalInterface.addCallback("strShow2",strShow2);

1,Flash通过FSCommand消息调用MFC

第一步:添加消息处理函数。在Flash控件上点右键,然后选择“添加事件处理程序”void CFlashTestDlg::FSCommandShockwaveflash1(LPCTSTRcommand, LPCTSTR args)

第二步:编写消息处理代码。

void CFlashTestDlg::FSCommandShockwaveflash1(LPCTSTR
command,LPCTSTR
args)
{ // TODO: 本次只是测试,正规项目一般都是switch语句

CString
toShow;

toShow.Format("Flash向MFC发送的参数列表command:%s---args:%s",command,args);

AfxMessageBox(_T(toShow));

}

2、MFC通过CallFunction函数调用Flash

CString
temp = "<invokename=\"strShow1\"><arguments><string>这是C++调用flash的响应</string></arguments></invoke>";

flashUI.CallFunction(temp);

上面这个函数会调用flash文件里的strShow1函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: