一、在c# winform程序里嵌入FLASH
要在c# winform程序里嵌入FLASH,其实就是直接引用Flash的ocx控件。
那你就需要使用“COM 组件” Shockwave Flash Object。不过这个"Flash.ocx"控件不能直接在“COM 组件”窗口中找到.。
需要我们手动添加,选择菜单中的“工具”--“自定义工具箱”,打开“自定义工具箱”窗口,在“COM 组件”中点击“浏览”键,然后选择
“c:\WINNT(WINDOWS)\system32\Macromed\Flash\swflash.ocx"控件,确定后在工具箱中就可以看到“FlashFactory”,“ShockwaveFlash”两个新控件
添加控件注意
我使用的是“xp系统”和FLASH8与flash9都有安装,ShockwaveFlash就是在
“C:\WINDOWS\system32\Macromed\Flash\”
目录
工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录
下面(我使用的“Flash9d.ocx”)
当你发现你的ShockwaveFlash程序提示你“没有注册”,那你可能缺少了“Microsoft Multimedia Control, version 6.0”控件,可以先添加这个控件到“工具箱”中。这个控件在“C:\WINDOWS\system32\MCI32.OCX”,如果没有可以通过百度上网下载一个,我在本机没有找到,就在网上下载了该文件。
.Net winform中嵌入Flash
使用Flash 和C# WinForm 配合打造界面漂亮的应用程序
下面介绍一下Flash控件的一些重要属性和
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
(来源于网上一篇Flash控件的秘密(VB))
属性:
1.AlignMode (读写)
语法:AlignMode As Long
说明:对齐方式(与SAlign 属性联动)。当控件的长宽比例与影片不一致且WMode 不为ExactFit 时,影片
(没有被放大的)在控件中显示的位置可用该属性调整。该属性值由标志位组成。如图,将该属性值(二进制)中相应的位标记为1 就设置了相应的对齐方向。
属性值与相应的对齐方式(后面括号里是二进制数)
1:左对齐(0001)2:右对齐(0010)4:顶对齐
(0100)8:底对齐(1000)
也可以组合各种对齐方式,同时将两个或以上的位标记为1 ,也就是将这四个基本值组合相加。比如同时左对齐和顶对齐,属性值则设为5(0101)。
例子:设置影片为右对齐:
movie.AlignMode = 2
2.BackgroundColor(读写)语法:BackgroundColor As Long 说明:影片的背景色(与
BGColor 联动)。以(红
× 65536 +绿× 256 +蓝)计算颜色值。红绿蓝颜色取值范围(0-255 )。默认的影片背景色为-1 。如果影片设置了底色或有图片当作背景,那么看不出来该属性值的改变会有什么影响。
例子:将影片背景色设为蓝色:
movie.BackgroundColor = 255
3.Base (读写)
语法:Base As String
说明:指定用于解决影片中所有相对路径的声明的基地址。当影片与其需要的其他文件不在同一目录中的时候该属性特别有用。如不特别指定,Base 的值默认为".",也就是当前影片所在的路径。
例子:
movie.Base = "
pathname2"
4.BGColor (读写)
语法:BGColor As String
说明:影片的背景色(与BackgroundColor 联动)。与BackgroundColor 不同的是, BGColor 是一个六位的十六进制数,每两位分别代表红绿蓝颜色值。如:FFEEAA 表示红色值为FF、绿色值为EE 、蓝色值为AA 。
例子:将影片背景色设为红色:
movie.BGColor = "FF0000"
5.DeviceFont (读写)
语法:DeviceFont As Boolean
说明:决定是否使用影片内嵌的字体,默认值为False 。将该属性值设为True 则强制播放器不使用影片中内嵌的字体而使用本地系统字体。
例子:movie.DeviceFont = True
6.EmbedMovie (读写)
语法:EmbedMovie As Boolean
说明:影片是否被存贮到控件所在的容器中。当你已载入一个影片后将该属性设为True ,播放影片时就不必再去读SWF 文件了。这使得在PowerPoint 简报或VB 程序里使用Flash 影片更容易。但将该属性设为True 后,控件的Movie 属性就不再接受新的值了。要想播放另一个影片(给Movie 属性赋新值),必须先将EmbedMovie 属性设为False 。例子:
movie.EmbedMovie = True
7.FrameNum (读写)
语法:FrameNum As Long
说明:影片当前帧的编号(从0 开始计数)。设置该属性值将使影片停在由FrameNum 指定的帧处。
例子:显示当前帧数:
MsgBox " 当前显示的是第" & movie.FrameNum &
" 帧。"
使影片显示第10 帧:Bomovie.FrameNum = 9
8.Loop (读写)
语法:Loop As Boolean
说明:是否循环播放。设为True 是循环播放,设为False 则只播放一次。
例子:
movie.Loop = True
9.Menu (读写)
语法:Menu As Boolean
说明:是否显示菜单。设为True 显示所有菜单,设为False 菜单被屏蔽,但仍有一项“About Macromedia Flash Player...”。如果你实在不喜欢这个菜单,应该在程序中通过拦截鼠标消息的方法来达到目的。与在独立的 F l a s h 播放器中不同的是,在控件的右键菜单里点“About...”的话,将打开浏览器到Macromedia 的网站上去看About 了。
例子:
movie.Menu = False
10.Movie (读写)
语法:Movie As String
说明:要播放的影片路径(URL )。设置该属性为一个SWF 文件的URL 将载入文件并播放它。若影片是在本地硬盘上,要写成从盘符开始的绝对路径;若影片是在某网站上,也要写全URL 地址。
例子:
movie.Movie = "
path2/filename.swf" 或
movie.Movie = "c:\temp\test.swf"
11.Playing (只读)
语法:Playing As Boolean
说明:当前播放状态。如果影片正在播放,该属性值为True ,否则为False 。
例子:
If movie.Playing = False Then MsgBox " 影片已停止播放!" End If
12.Quality (读写)
语法:Quality As Long
说明:画面质量(与Quality2 联动)。Quality 可以取:
0 ——相当于Quality2 取"Low"
1 ——相当于Quality
2 取"High"
2 ——相当于Quality2 取"AutoLow"
3 ——相当于Quality2 取"AutoHigh" 例子:
movie.Quality = 1
13.Quality2(读写)
语法:Quality As String
说明:画面质量(与Quality 联动)。Quality2 可以取: Low :偏重于播放速度而不管显示效果,而且不启用
消锯齿功能。
High :偏重于画面而不管播放速度,并且总是启用消锯齿功能。如果影片中不包含动画就平滑处理位图;如果有动画,那么位图就不被平滑处理。(这里的动画应该是把一张图片做平移或旋转)
AutoLow :先着重于播放速度,但只要有可能就改善显示效果。一开始播放时先禁用消锯齿功能。如果播放器检测到处理器能承受得了,就启用消锯齿功能。
AutoHigh:一开始是播放速度和显示效果并重,但如有必要就牺牲画质确保速度。开始播放时就启用消锯齿功能。但如果实际的帧速率比
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
时指定的速率慢了,就禁用消锯齿功能来提高播放速度。
例子:
movie.Quality2 = "High"
14.ReadyState(只读)
语法:ReadyState As Long
说明:影片的当前状态。ReadyState 可以取:
0 ——正在载入
1 ——未初始化
2 ——已载入
3 ——正在交互
4 ——完成例子:
If movie.ReadyState = 4 Then
MsgBox " 影片载入完成!" End If
15.SAlign (读写)
语法:SAlign As String
说明:对齐模式(与AlignMode 联动)。当AlignMode
代表各对齐模式的位被置“1”时,SAlign 值也相应被设为
“L”(Left)、“T”(Top)、“R”(Right)、“B”(Bottom)各字符的组合。(…L?、…T?、…R?、…B?的先后顺序不变)
例子:设置影片为左对齐和顶对齐:
movie.SAlign = "LT"
16.Scale (读写)
语法:scale As String
说明:缩放模式(与ScaleMode 联动)。Scale 可以取:
ShowAll ——在控件内显示全部影片区域,保持影片长宽比例不变,影片的大小决定于控件长
或宽中较小的一边。
NoBorder ——在控件内显示部分影片区域,保持影片长宽比例不变,影片的大小决定于控件长或宽中较大的一边。
ExactFit ——在控件内显示全部影片区域,将影片的长宽比例强制等于控件的长宽比例。
例子:
MsgBox " 当前的缩放模式是:" & movie.Scale
17.ScaleMode(读写)
语法:ScaleMode As Long
说明:缩放模式(与Scale 联动)。ScaleMode 可以取:
0 ——相当于Scale 取"ShowAll"
1 ——相当于Scale 取"NoBorder"
2 ——相当于Scale 取"ExactFit"
例子:使影片的缩放模式改成“ExactFit ”:
movie.ScaleMode = 2
18.Stacking (读写)
语法:Stacking As String
说明:用于HTML,将Flash Player 当成HTML 中的一种“行为”使用时,该属性决定Flash 影片相对于与其参照的HTML 内容如何显示。(有关“行为”请参阅样式表的资料)。Stacking 可以取:
none ——“行为”不显示。
replaceall ——“行为”的显示取代全部其他元素的内容,包括背景。
content ——“行为”的显示只取代其他元素的内容。
background ——“行为”的显示只取代其他元素的背景。
below ——“行为”在所有其他元素内容的下面显示。
belowflow ——“行为”以反向Z 顺序显示在其他元素的子对象之上,但在该元素主要内容之上。
aboveflow ——“行为”以正向Z 顺序显示在其他元素的子对象之下,但在该元素主要内容之上。
above ——“行为”显示在所有其他元素的内容之上。
top ——“行为”的显示置于整个页面内容之上。例子:
movie.Stacking = "below"
19.TotalFrames(只读)
语法:TotalFrames As Long
说明:返回影片中总帧数。该参数要到影片载入完成才有效(ReadyState=4)。
例子:
If movie.ReadyState = 4 Then
MsgBox " 本影片共有" & movie.TotalFrames & " 帧。"
End If
20.WMode (读写)
语法:WMode As String
说明:控件的窗口模式。WMode 可以取:Window —— WMode 属性的默认值,按Flash 播放器
典型的方式工作,即在控件的矩形窗口中播放影片,这样一般都能提供最快的动画效果。Opaque ——使影片不透明。Transparent ——创建一个透明的影片。如果影片中有
透明的片段,放到这里时,就可以看到控件下面的背景。但使用此属性值,动画的播放速度可能会慢一些。
例子:
movie.WMode = "Transparent"
方法:
1.Back
语法:Back()
说明:影片后退一帧,并且停止播放。例子:
movie.Back
2.Forward
语法:Forward()
说明:影片前进一帧,并且停止播放。例子:
movie.Forward
3.GotoFrame
语法:GotoFrame(FrameNum As Long) 说明:将影片跳转到由FrameNum 指定的帧,并且
停止播放。如果所指定的帧还未载入,播放器前进到最后的可用帧并停下,在调用过程中会产生无法预料的后果。最好使用PercentLoaded 方法来确定是否已载入足够的影片来执行本方法。参数FrameNum 是从0 开始的,这和Flash 中的Goto 动作不一样,它是从 1 开始的。
例子:跳转到影片的第20 帧:
movie.GotoFrame 20
4.LoadMovie
语法:LoadMovie(layer As Long, url As String) 说明:将由url 指定的影片载入到由layer 指定的层上。例子:将movie.swf 载入至0 层:
movie.LoadMovie 0, "movie.swf"
5.Pan
语法:Pan(x As Long, y As Long, mode As Long) 说明:将一个放大过的影片平移由x 和y 指定的距离。
x 和y 均为相对值。即控件相对于影片来说平移的距离(你可以想象控件是一个窗户,影片
是我们从窗户里看到的放在外面的布景, 我们看到窗户相对于布景平移了一些距离,那是外面的布景在动,而窗户是不动的)。用mode 参数来指定x 和y 的值是像素还是窗口的百分比,当mode=0 时坐标系以像素为单位;mode=1 时坐标系就以窗口的百分比来计算。平移并不能超出影片的边框,也就是说,往一个方向平移最多到达影片的边缘与控件对齐的程度。例子:控件相对于影片向左向上各平移 5 个像素(当然控件不会动,是影片向右向下平移了):
movie.Pan 5,5,0
6.Play
语法:Play()
说明: 开始播放影片。例子:
movie.Play
7.Rewind
语法:Rewind()
说明: 倒带。返回到影片的第一帧。例子:
movie.Rewind
8.SetVariable
语法:SetVariable(name As String, value As String) 说明:将由name 指定的Flash 变量值设为value。例子:movie.SetVariable "/Form:UserName", "John Smith"
9.SetZoomRect
语法:SetZoomRect(left As Long, top As Long, right
As Long, bottom As Long)
说明: 将影片中指定的矩形区域放大到控件的大小。left(左)、top(顶)、right(右)、bottom(底)的坐标值是相对于控件中的影片有效位置计算的。注意哟,这个函数是从影片的有效区域的左上角开始计算,而不是控件的左上角。
例子:放大影片中从左上角开始的200 × 200 点的矩形区域:
pointsToTwips = 20;
movie.SetZoomRect 0, 0, 200 * pointsToTwips, 200
* pointsToTwips
10.Stop
语法:Stop()
说明:停止播放影片。例子:movie.Stop
11.StopPlay
语法:StopPlay()
说明:停止播放影片。例子:movie.StopPlay
12.TCallFrame
语法:TCallFrame(target As String, FrameNum
As Long)
说明:在由t a r g e t 指定的时间轴中,执行由FrameNum 指定的帧中的动作。
例子:要运行主时间轴中第 5 帧的动作:
movie.TCallFrame "/", 4
13.TCallLabel
语法:TCallLabel(target As String, label As String) 说明:在由target 指定的时间轴中,执行由label 指
定的帧中的动作。例子:要运行主时间轴中名为“HandleScriptNotify”
的帧中的动作:
movie.TCallLabel "/", "HandleScriptNotify"
14.TGotoFrame
语法:TGotoFrame(target As String, FrameNum
As Long)
说明:对于由t a r g e t 指定的时间轴,转到由FrameNum 指定的帧。
例子:
movie.TGotoFrame "/MovieClip", 2
15.TGotoLabel
语法: TGotoLabel(target As String, label As String) 说明:对于由target 指定的时间轴,转到由label 指
定的帧。
例子:movie.TGotoLabel "/MovieClip", "MyLabel"
16.TPlay
语法:TPlay(target As String) 说明:播放由target 指定的时间轴。例子:movie.TPlay "/MovieClip"
17.TSetProperty
语法:TSetProperty(target As String, property As
Long, value As String)
说明:对于由target 指定的时间轴,把由property 指定的属性设为由value 指定的值(字符串)。property 是一个代表相应属性的编号(详情请参阅附表)。
例子:
Dim nameIndex As Long
nameIndex = 13
movie.TSetProperty "/MovieClip", nameIndex,
"NewName"
18.TSetPropertyNum
语法:TSetPropertyNum(target As String, property
As Long, value As Double)
说明:对于由target 指定的时间轴,把由property 指定的属性设为由value 指定的值(数字)。property 是一个代表相应属性的编号(详情请参阅附表)。
例子:
Dim visibilityIndex As Long visibilityIndex = 7
movie.TSetProperty "/MovieClip", visibilityIndex, 1
19.TStopPlay
语法:TStopPlay(target As String) 说明:停止播放由target 指定的时间轴。例子: movie.TStopPlay "/MovieClipToStop"
20.Zoom
语法:Zoom(factor As Long) 说明:以factor 指定的相对百分比来缩放视图。factor
可以理解为从控件窗口看到的影片占实际大小的百分比。将
factor 设为0,则视图还原成100% 大小。当前视图已经是
100% 时不能再将其缩小。
例子:将影片放大两倍:movie.Zoom 50 下面的方法都有返回值:
21.CurrentFrame
语法:CurrentFrame() As Long 说明: 返回影片的当前帧数。影片的第一帧为0 。例子: Dim frameNow As Integer frameNow = movie.currentFrame
22.FlashVersion
语法:FlashVersion() As Long
说明:返回控件版本号。该值共有三个字节,依次是主版本号、次版本号、修订版本号。如我用的Flash 播放器控件用此方法返回值是 3 2 7 7 2 2 ,相当于十六进制的
&h05002A,相当于5.00.42。
例子:下列程序显示你所使用的控件版本号:
Dim verNum, majorNum, minorNum, revisionNum
As Long verNum=movie.FlashVersion majorNum=verNum \ 65536
minorNum=(verNum - majorNum * 65536) \ 256
revisionNum = verNum Mod 256
MsgBox " 你的Flash 播放器控件的版本号:" &
majorNum & "." & minorNum & "." & revisionNum
23.GetVariable
语法:GetVariable(name As String) As String
说明:返回name 指定的Flash 变量的值。如果变量不存在则返回null。
例子:
Dim firstName, radioButtonValue As String firstName = movie.GetVariable "FirstName" radioButtonValue = movie.GetVariable("/Form/
RadioButton:Value")
24、IsPlaying
语法:IsPlaying() As Boolean
说明:如果影片正在播放则返回true 。例子:
If movie.IsPlaying Then
MsgBox " 影片正在播放中!" End If
25.PercentLoaded
语法:PercentLoaded() As Long
说明:返回目前已经载入的影片的百分比。取值范围从0 到100 。
例子:
Dim loaded As Boolean
If movie.PercentLoaded = 100 Then loaded = true
End If
26.TCurrentFrame
语法:TCurrentFrame(target As String) As Long 说明:返回由target 指定的时间轴中当前帧的号码。返回的帧号码是从0 开始的,也就是说影片的第一帧为0 ,第
二帧为1,以此类推。例子:
Dim currentFrame As Long
currentFrame = movie.TCurrentFrame("/MovieClip")
27.TCurrentLabel
语法:TCurrentLabel(target As String) As String
说明:返回由target 指定的时间轴中当前帧的标签。如果没有当前帧的标签,则返回一个空字符串。
例子:
Dim currentLabel As String
currentLabel = movie.TCurrentLabel("/MovieClip")
28.TGetProperty
语法:TGetProperty(target As String, property
As Long) As String
说明:对于由target 指定的时间轴,返回由property 指定的属性值(字符串)。其中, property 是一个代表相应属性的编号(详情请参阅附表)。
例子:
Dim nameIndex As Long Dim name As String nameIndex = 13
name = movie.TGetProperty("/", nameIndex)
29.TGetPropertyNum
语法:TGetPropertyNum(target As String, property
As Long) As Double
说明:对于由target 指定的时间轴,返回由property 指定的属性值(数字)。其中,property 是一个代表相应属性的编号(详情请参阅附表)。
例子:
Dim framesLoadedIndex As Long Dim framesLoaded As Double framesLoadedIndex = 12
framesLoaded = movie.TGetProperty("/", framesLoadedIndex)
附表:获取及设置属性。相应的每个属性的编号都可用在TGetProperty、
TGetPropertyAsNumber、TSetProperty 或TSetPropertyNum 中,以指出将要访问的属性。
事件:
1.FSCommand
语法:FSCommand(command As String, args As
String)
说明:在Flash 中为影片添加的FSCommand 动作可以从影片中传递信息给Flash 播放器,Flash 播放器或包含播放器控件的网页或程序播放这个影片时就根据得到的这些信息执行相应的动作,从而实现影片内部与外部应用的交互操作。如在 F l a s h 中给一个按钮图片添加如下的Action:
on(release) {
fscommand("fullscreen","true");
}
当Flash 播放器播放这个文件时点击按钮,播放器就会切换到全屏模式。下面是Flash 自带的播放器能识别的命令和它们的参数:
命令:quit
参数:无参数
作用:关闭播放器命令:fullscreen 参数:true 或false
作用:设置为true 使播放器以全屏模式播放;设置为false 使播放器回到一般窗口模式播放。命令:allowscale
参数:true 或false
作用:设为false 将使影片不随播放器大小改变而改变,始终保持原始尺寸,相当于播放器菜单中的100% ;设为true 则恢复影片随播放器大小而改变的尺寸,相当于播放器菜单中的Show All 。
命令:showmenu
参数:true 或false
作用:设为true 显示全部菜单,包括菜单栏和播放区的右键菜单;设为false 菜单栏不显示,播放区的右键菜单中只有一项“About Macromedia Flash Player...”。
命令:exec
参数:应用程序的路径及名称作用:执行一个指定的应用程序。如在Flash 影片中
添加动作为:
fscommand("exec","regedit");
则播放器播放影片时执行此动作会打开“注册表编辑器”程序。注意哟,Flash 自带的播放器接收到这些命令后会执行相应的动作,但在控件中不会有任何反应,只能由程序在FSCommand 事件中
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
接收到的command 和args 并编程做出相应处理。
2.OnProgress
语法:Event OnProgress(percentDone As Long) 说明:发生在Flash 影片下载时。
percentDone 是影
片已下载的百分比,取值从0 到100 。
例子:在窗体标
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
栏中显示下载进度:
Private Sub movie_OnProgress(ByVal percentDone
As Long)
form1.Caption = " 影片已下载:" & percentDone
& "%"
End Sub
3.OnReadyStateChange
语法:Event OnReadyStateChange(newState As
Long)
说明:发生在控件的准备状态改变时。下面列出了
newState 可能的值:
0 ——正在载入
1 ——未初始化
2 ——已载入
3 ——正在交互
4 ——完成
例子:影片载入完成后出现提示信息,然后开始播放影片:
Private Sub movie_OnReadyStateChange(newState As
Long)
If newState = 4 Then
MsgBox " 影片载入完成!" & vbCrLf & " 影片总帧数:" & movie.TotalFrames movie.Play
End If
End Sub
有些例子是VB的,但还是看得懂,反正不是写Flash播放器的话也用不了多少的
只要一个Movie属性和Play()方法就可以在From里放flash了
这里算是对C# Winform对使用Flash控件的一个总结吧,希望给想我一样对Flash不太熟悉的人一些帮助
在WinFrom里使用Flash的确很炫
二、.net中Windows Media Player组件的使用
在添加引用那里添加 .com
里面的 Windows Media Player 组件路径为 C:\WINDOWS\system32\wmp.dll 的组件
然后就可以在窗体里面写
WMPLib.WindowsMediaPlayer w = new WMPLib.WindowsMediaPlayer();
简单的就是 w.URL="D:\\音乐\\挪威森林.wma";
路径不用说了吧。
w.controls.play(); 这个是开始播放。
w.controls.pause();暂停。
w.controls.stop();停止。。
具体的参数:
URL: String; 指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
enableContextMenu:Boolean; 启用/禁用右键菜单
fullScreen:boolean; 是否全屏显示
[controls] wmp.controls //播放器基本控制
controls.play; 播放
controls.pause; 暂停
controls.stop; 停止
controls.currentPosition:double; 当前进度
controls.currentPositionString:string; 当前进度,字符串格式。如
“00:23”
controls.fastForward; 快进
controls.fastReverse; 快退
controls.next; 下一曲
controls.previous; 上一曲
[settings] wmp.settings //播放器基本设置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自动播放
settings.mute:Boolean; 是否静音
settings.playCount:integer; 播放次数
[currentMedia] wmp.currentMedia //当前媒体属性
currentMedia.duration:double; 媒体总长度
currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24” currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
currentMedia.name:string; 同 currentMedia.getItemInfo("Title") [currentPlaylist] wmp.currentPlaylist //当前播放列表属性currentPlaylist.count:integer; 当前播放列表所包含媒体数currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
注:fullScreen一定要在播放时才能设置。否则会有报灾难性的错误。