当前位置: 首页 > 设计代码 > 正文

Shockwaveflash 资料收集1

AlignMode(int型)和SAlign(WideString型) 控制动画的显示位置(把这两个属性列在一起说明它们是相互

关联的,改变一个另一个也会相应地改变,以下类似)。取值范围及含义如下:
   0 空 当前位置
   1 L 当前位置靠左
   2 R 当前位置靠右
   3 LR 当前位置居中
   4 T 当前位置靠上
   5 LT 左上
   6 TR 右上
   7 LTR 上方居中
   8 B 当前位置靠下
   9 LB 左下
   10 RB 右下
   11 LRB 下方居中
   12 TB 当前位置垂直居中
   13 LTB 靠左垂直居中
   14 TRB 靠右垂直居中
   15 LTRB 中央位置
  【属性】BackgroundColor(int型)和BGColor(WideString型) 设置背景颜色,BackgroundColor为整

型值,BGColor为它的HEX字符串。
  【属性】Loop(bool型) 是否循环显示
  【属性】Menu(bool型) 是否显示右键菜单,建议设为true,因为它可以完成对Flash动画的大部分控

制工作,而不用我们写代码。
  【属性】Movie(WideString型) Flash动画的文件名,可以在运行状态动态设置,要关闭一个动画只

要把它设为空即可。
  【属性】Quality(int型)和Quality2(WideString型) 控制动画的显示质量,一般将Quality设为1以获

得高质量的显示效果。
  【属性】ScaleMode(int型)和scale(WideString型) 控制动画的显示比例,取值范围及含义如下:
   0 ShowAll 显示全部
   1 NoBorder 无边框模式
   2 ExactFit 拉伸到整个画面
   3 空 原始大小

【方法】PercentLoaded 返回动画已经加载的百分比,你可以建立一个进程条(ProgressBar)来显示
动画加载的进程。
  【方法】LoadMovie 用于加载网络上的动画,动画文件名为一个BSTR型的URL值,在 C++ Builder
中可以用 AnsiToOLESTR 函数将Char型的字符串转换成BSTR型。
  好了,利用上面介绍的属性和方法,相信你已经很好地使用它了!遗憾的是 ShockWaveFlash 控件
功能现在
还不太完善,比如无法返回动画的实际大小和背景颜色等,但对于我们只要在程序中显示一个特定的
Flash动画来说,这些并不重要。

*************************************************************************************************

tshockwaveflash主要属性如下:

readystate:读一个flash文件时的状态,其中包括0=loading、1=uninitialized、2=loaded、

3=interactive和4=complete;
totalframes:总帧数,只有当readystate = 4时才能访问该属性;
framenum:当前播放的帧;
playing:播放或暂停一个flash;
quality:指定当前渲染的质量,包括0=low, 1=high、2=autolow、3=autohigh;
scalemode:缩放模式,0=showall、1= noborder、2 = exactfit;
alignmode:对齐模式,left=+1、right=+2、=+4、bottom=+8;
backgroundcolor:背景色,-1为默认颜色;
loop:是否循环;
movie:指定播放的flash文件路径,可以为一个url。

tshockwaveflash主要方法如下:

play():开始播放动画;
stop();停止播放动画;
back();播放前一帧动画;
forward():播放后一帧动画;
rewind():播放第一帧动画;
setzoomrect(int left, int top, int right, int bottom):设置缩放的区域;
zoom(int percent):按百分比缩放;
pan(int x, int y, int mode):缩放播放面板,其中模式0为按像数、1为按窗口百分比。

tshockwaveflash主要事件如下:

onprogress(int percent):读取一个flash时触发;
onreadystatechange(int state):状态改变时触发。states的值可以为0=loading、

1=uninitialized、2=loaded、3=interactive和4=complete。
****************************************************************************************
用VB编写FLASH动画播放器_VisualBasic教程
Flash4是MacroMedia公司出品的矢量动画创作专业软件,利用该软件制作的矢量动画具有文件体积小、带

音效和兼容性好等特点。那么,你想不想在自己编写的程序中加入Flash动画,为自己的程序添加一道亮

丽的色彩呢?
  一、编程原理
  本程序利用了Flash4本身自带播放Flash动画的控件Swflash.ocx。你可以通过以下途径获得该控件:

1、安装Flash4;2、安装Windows98自带的Flash插件,方法:依次单击“开始”菜单-“设置”-“控制面板”

-“添加/删除程序”-“Windows安装程序”-“多媒体”-“详细资料”-选中“MacromediaShockwaveFlash”前

的复选框确定即可。以上方法都会将该控件安装到Windows目录下的System\Macromed\Flash子目录下。
  二、示例程序
  下面就是一个用Swflash.ocx控件编写的Flash动画播放器。本程序可一次打开多个Flash动画文件,

并可在播放过程中选择播放打开的文件、随时改变播放质量、画面大小等状态;在播放过程中可以随时对

播放的当前帧数进行调整或者手动进行逐帧播放,在状态栏里有当前播放状态的相关说明。在实现以上功

能时,几乎用全了Swflash.ocx控件的主要属性、方法。
  编程过程如下:
  1、窗体、界面设计。
  新建工程,选择“工程”菜单下的“部件”命令,在“部件”窗口的“控件”列表中将“Shockwaveflash”、

“MicrosoftCommonDialogControl6.0(SP3)”、“MicrosoftWindowsCommonControl6.0(SP3)”前的复选框选

中,然后确定。再在窗体中分别加入1个CommonDialog控件、1个Slider控件、3个Label控件、6个

CommandButton控件和1个StatusBar控件。其中:
  将Form1的“Caption”属性设置为:Flash动画播放器。这是控制窗口。
  将CommonDialog1的CancelError设置为True,DialogTitle设置为“打开Flash动画文件”,Filter属性

设置为“Flash动画(*.swf)|*.swf|”,FilterIndex设置为1,MaxFileSize设置为10240。
  将Slider1的SelectRanger的属性设置为“True”,SmallChange属性和LargeChange属性设置为10,

TickFrequengcy属性设置为20,TextPosition设置为“1-SldBelowRight”。
  将Label(1-3)分别放在Slider1下的左端、中间和右端。其中,Label1的Caption设置为“0帧”,

Label2和Label3的Caption设置为空字符串。
  6个CommandButton的“名称”属性分别为:cmdOpen、cmdPlay、cmdPause、cmdPre、cmdPreFrame、

cmdNextFrame、cmdNext、cmdExit,“Caption”属性分别为:打开、播放、暂停、上一个、上一帧、下一

帧、下一个、退出。
  在StatusBar上单击鼠标右键,选择“属性”,从弹出的窗口中选择“窗格”页面,用鼠标点击“插入窗格

”5次,在索引1-5中分别设置“文本”属性为:“共打开了0个文件”、“状态:”、“等待”、“帧数:”、“0”,

再适当设置每一项的“最小宽度”的属性(可参考图1中的比例)。
    进入菜单编辑器(按快捷键Ctrl+E)。设置第一个菜单标题为“显示控制”,名称为:

mnuDisplay;在“显示控制”下设立子菜单标题分别为“全部显示”、“随窗口大小变化”、“缩放至窗口大小”

,名称分别为:mnuDisplay0、mnuDisplay1、mnuDisplay2。设置第二个菜单标题为“质量控制”,名称为

:mnuQuality;在“质量控制”下设立子菜单标题分别为“低分辨率”、“高分辨率”,名称分别为:

mnuQuality0、mnuQuality1。设置第三个菜单标题为“播放控制”,名称为:mnuPlayControl;在“播放控

制”下设立子菜单标题分别为“循环播放”、“放大画面”、“缩小画面”,名称分别为:mnuLoopPlay、

mnuZoomIn、mnuZoomOut。
  选择“工程”菜单下的“添加窗体”命令,新增一个窗体Form2作为播放窗口。在Form2上加入1个

ShockwaveFlash控件和1个Timer控件。将Timer1控件的“Interval”属性设置为“20”。
  最后,对各窗体、控件的大小、位置进行适当的调整,其大小、位置可参考图1。
  2、程序代码
  第一步:在Form1的代码窗口中添加以下代码:
  DimFileNames()AsString注释:用于保存打开的文件名称。
  DimPlayFileNumAsInteger注释:用于计算正在播放的文件序号。
  DimTotalFileAsInteger注释:用于统计打开的文件总数。
  PrivateSubcmdOpen_Click()注释:打开
  OnErrorGoToExitOpen
  CommonDialog1.Flags=cdlOFNAllowMultiselectOrcdlOFNFileMustExistOrcdlOFNExplorer
  CommonDialog1.FileName=″”
  CommonDialog1.ShowOpen注释:显示“打开”对话框。
  注释:以vbNullChar作为子字符串的边界分隔字符串CommonDialog1返回的FileName。
  FileNames()=Split(CommonDialog1.FileName,vbNullChar)
  IfUBound(FileNames)=0Then注释:用户只打开了一个文件。
  Form2!ShockwaveFlash1.Movie=FileNames(0)
  TotalFile=1
  PlayFileNum=0
  Else注释:用户打开了多于一个文件。
  Form2!ShockwaveFlash1.Movie=FileNames(0)+″\″+FileNames(1)
  TotalFile=UBound(FileNames)
  PlayFileNum=1
  EndIf
  StatusBar1.Panels(1).Text=″共打开了″+Trim(Str(TotalFile))+″个文件″
  cmdPlay_Click
  ExitOpen:
  EndSub
  PrivateSubcmdPlay_Click()注释:开始播放
  IfTotalFile<1ThenExitSub注释:用户还没有打开文件。
  注释:显示Form2开始播放动画。
  Form2.Caption=FileNames(PlayFileNum)+″-Flash动画播放器″
  Form2.Show
  Form2!ShockwaveFlash1.Playing=True
  IfTotalFile=1ThenPlayFileNum=0
  注释:显示状态条的信息。
  StatusBar1.Panels(3).Text=″正在播放文件:″+FileNames(PlayFileNum)+″…″
  注释:显示滑动条的状态。
  Slider1.Max=Form2!ShockwaveFlash1.TotalFrames
  Label2.Caption=Str(Slider1.Max/2)+″帧″
  Label3.Caption=Str(Slider1.Max)+″帧″
  EndSub
  PrivateSubcmdPause_Click()注释:暂停播放
  Form2!ShockwaveFlash1.Stop
  EndSub
  PrivateSubcmdPre_Click()注释:播放上一个文件
  IfTotalFile<>1Then注释:当用户打开多于一个文件时
  PlayFileNum=PlayFileNum-1
  IfPlayFileNum<1ThenPlayFileNum=TotalFile
  Form2!ShockwaveFlash1.Movie=FileNames(0)+″\″+FileNames(PlayFileNum)
  EndIf
  注释:显示播放状态的信息。
  StatusBar1.Panels(3).Text=″正在播放文件:″+FileNames(PlayFileNum)+″…″
  Slider1.Max=Form2!ShockwaveFlash1.TotalFrames
  Form2.Caption=FileNames(PlayFileNum)+″-Flash动画播放器″
  Label2.Caption=Str(Slider1.Max/2)+″帧″
  Label3.Caption=Str(Slider1.Max)+″帧″
  EndSub
  PrivateSubcmdNext_Click()注释:播放下一个文件
  IfTotalFile<>1Then注释:用户打开多于一个文件时
  PlayFileNum=PlayFileNum+1
  IfPlayFileNum>TotalFileThenPlayFileNum=1
  Form2!ShockwaveFlash1.Movie=FileNames(0)+″\″+FileNames(PlayFileNum)
  EndIf
  注释:显示播放状态的信息。
  StatusBar1.Panels(3).Text=″正在播放文件:″+FileNames(PlayFileNum)+″…″
  Slider1.Max=Form2!ShockwaveFlash1.TotalFrames
  Form2.Caption=FileNames(PlayFileNum)+″-Flash动画播放器″
  Label2.Caption=Str(Slider1.Max/2)+″帧″
  Label3.Caption=Str(Slider1.Max)+″帧″
  EndSub
  PrivateSubcmdPreFrame_Click()注释:跳到动画的上一帧
  Form2!ShockwaveFlash1.Back
  EndSub
  PrivateSubcmdNextFrame_Click()注释:跳到动画的下一帧
  Form2!ShockwaveFlash1.Forward
  EndSub
  PrivateSubcmdExit_Click()注释:退出程序
  End
  EndSub
  PrivateSubSlider1_Scroll()
  注释:当用户拖动滑动条时,将播放帧数设置为滑动条中的值。
  Form2!ShockwaveFlash1.FrameNum=Slider1.Value
  EndSub
  PrivateSubmnuDisplay0_Click()
  注释:将画面大小设置为在控件内保持动画原来比例全部显示
  Form2!ShockwaveFlash1.ScaleMode=0
  mnuDisplay0.Checked=True
  mnuDisplay1.Checked=False
  mnuDisplay2.Checked=False
  EndSub
  PrivateSubmnuDisplay1_Click()
  注释:将画面的缩放设置为随控件横向(或纵向)的缩放而变化
  Form2!ShockwaveFlash1.ScaleMode=1
  mnuDisplay0.Checked=False
  mnuDisplay1.Checked=True
  mnuDisplay2.Checked=False
  EndSub
  PrivateSubmnuDisplay2_Click()
  注释:将画面大小设置为不理会动画原来比例缩放至控件大小
  Form2!ShockwaveFlash1.ScaleMode=2
  mnuDisplay0.Checked=False
  mnuDisplay1.Checked=False
  mnuDisplay2.Checked=True
  EndSub
  PrivateSubmnuLoopPlay_Click()
  注释:将播放方式设置为循环或不循环。
  mnuLoopPlay.Checked=NotmnuLoopPlay.Checked
  Form2!ShockwaveFlash1.Loop=NotForm2!ShockwaveFlash1.Loop
  EndSub
  PrivateSubmnuQuality0_Click()
  注释:将画面质量设置为低分辨率
  Form2!ShockwaveFlash1.Quality=0
  mnuQuality0.Checked=True
  mnuQuality1.Checked=False
  EndSub
  PrivateSubmnuQuality1_Click()
  注释:将画面质量设置为高分辨率
  Form2!ShockwaveFlash1.Quality=1
  mnuQuality0.Checked=False
  mnuQuality1.Checked=True
  EndSub
  PrivateSubmnuZoomIn_Click()
  注释:放大画面。
  Form2!ShockwaveFlash1.Zoom(50)
  EndSub
  PrivateSubmnuZoomOut_Click()
  注释:缩小画面。
  Form2!ShockwaveFlash1.Zoom(200)
  EndSub
  PrivateSubForm_Unload(CancelAsInteger)
  End注释:结束程序
  EndSub
  第二步:在Form2的代码窗口中添加以下代码:
  PrivateSubForm_Resize()
  注释:将ShockwaveFlash1控件的大小设置为Form2的大小。
  ShockwaveFlash1.Top=Form2.ScaleTop
  ShockwaveFlash1.Left=Form2.ScaleLeft
  ShockwaveFlash1.Width=Form2.ScaleWidth
  ShockwaveFlash1.Height=Form2.ScaleHeight
  EndSub
  PrivateSubTimer1_Timer()
  注释:在状态栏和滑动条上显示当前播放的帧。
  Form1!StatusBar1.Panels(5).Text=Str(ShockwaveFlash1.FrameNum)
  Form1!Slider1.Value=ShockwaveFlash1.FrameNum
  EndSub
  第三步:调试、运行程序,运行界面如图2所示。
  当播放Flash动画时,在播放窗口中单击鼠标右键时,将会弹出如图3所示的菜单。在该菜单,我们可

以完成控制Flash动画播放的大部份工作。若想取消该功能,只要将Shockwaveflash控件的Menu属性设置

为False即可。
  以上程序在Windows98,VB6.0下运行通过。->

本文固定链接: http://blog.duoday.com/2008/252.html | 奇风's Blog

该日志由 于2008年10月07日发表在 设计代码 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。

原创文章转载请注明: Shockwaveflash 资料收集1 | 奇风's Blog

关键字:

Shockwaveflash 资料收集1:等您坐沙发呢!

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注
? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen
快捷键:Ctrl+Enter