VC使用flash简易教程

 

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与后台数据交互方法

  1. LoadVars(XML)
  2. Flash Remoting
  3. Webservice
  4. XMLSocket
  5. 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.       实现MFCFlash的通信

首先做好用来测试用的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 = "这是C++调用flash的响应";
flashUI.CallFunction(temp);
上面这个函数会调用flash文件里的strShow1函数。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部