找回密码
 加入
搜索
查看: 4899|回复: 6

[图形处理] 求助 flash.ocx 嵌入直接调用问题

[复制链接]
发表于 2013-5-26 10:15:31 | 显示全部楼层 |阅读模式
由于 flash  升级导致旧版金鹰教程无法正常播放,自制播放器如何直接调用 flash8.ocx
查网上有一款雅致 flash 打包软件可从做到,但不知如何实现。

半成品代码如下:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

GUICreate("", 1024, 750, -1, -1, $WS_POPUPWINDOW)
GUISetState( )
$Flash = ObjCreate("ShockwaveFlash.ShockwaveFlash")
$FlashObj = GUICtrlCreateObj($Flash, 0, 0, 1024, 750)
$Flash.Movie = "c:\1.swf"
$Flash.FlashVars = "autoPlay=true&channel=xfire_mausmausmaus1&embed=true"

$Flash.Loop = True

While 1
    Dim $msg = GuiGetMsg()
    If $GUI_EVENT_CLOSE = $msg Then
        $Flash.Stop()
        $Flash.Movie = ""
        ExitLoop
    EndIf
WEnd
 楼主| 发表于 2013-5-28 12:06:35 | 显示全部楼层
查到一个类厂 DllGetClassObject  函数可以创建对象,但不知怎么使用,
还望高手解答
 楼主| 发表于 2013-5-28 21:01:47 | 显示全部楼层
发个flash.ocx   还请高手解决

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-5-28 21:20:44 | 显示全部楼层
播放是 $Flash.Play
停止是 $Flash.Stop
均不需要()
好像没有这个属性$Flash.FlashVars ,所以这句是不需要的
下面是我网上找到的
加载flash必备的ShockwaveFlash控件属性
属性:
1.AlignMode (读写)
语法:AlignMode As Long
说明:对齐方式,与 SAlign 属性联动。当控件的 长宽比例与影片不一致且 WMode 不为 ExactFit 时,影片(没有被放大的)在控件中显示的位置可用该属性调整。 该属性值由标志位组成。如图,将该属性值(二进制)中相 应的位标记为 1 就设置了相应的对齐方向。属性值与相应的对齐方式。后面括号里是二进制数。
1:左对齐(0001)
2:右对齐(0010)
4:顶对齐(0100)
8:底对齐(1000)
也可以组合各种对齐方式,同时将两个或以上的位标记为 1,也就是将这四个基本值组合相加。比如同时左对齐 和顶对齐,属性值则设为 5(0101)。
例子 : 设置影片为右对齐:
movie.AlignMode = 2

2.SAlign (读写)
语法:SAlign As String
说明:对齐模式(与 AlignMode 联动)。当 AlignMode
代表各对齐模式的位被置“1”时,SAlign 值也相应被设为
“L”(Left)、“T”(Top)、“R”(Right)、“B”(Bottom)各 字符的组合。‘L’、‘T’、‘R’、‘B’的先后顺序不变。
例子:设置影片为左对齐和顶对齐:
movie.SAlign = "LT"

3.BackgroundColor(读写)
语法:BackgroundColor As Long
说明:影片的背景色(与 BGColor 联动)。以(红 × 65536 +绿× 256 +蓝)计算颜色值。红绿蓝颜色取值范围(0-255)。默认的影片背景色为 -1 。如果影片 设置了底色或有图片当作背景,那么看不出来该属性值的改变会有什么影响。
例子:将影片背景色设为蓝色 :
movie.BackgroundColor = 255

4.BGColor (读写)
语法:BGColor As String
说明:影片的背景色(与 BackgroundColor 联动)。与 BackgroundColor 不同的是,BGColor 是一个六位的十六进制数,每两位分别代表红绿蓝颜色值。如:FFEEAA 表示 红色值为 FF、绿色值为 EE 、蓝色值为 AA 。
例子:将影片背景色设为红色:
movie.BGColor = "FF0000"

5.Base (读写)
语法:Base As String
说明:指定用于解决影片中所有相对路径的声明的基地址。当影片与其需要的其他文件不在同一目录中的时候该属性特别有用。如不特别指定,Base 的值默认为 ".",也就 是当前影片所在的路径。
例子 :
movie.Base = "Http://www.domain.com/pathname1/pathname2"

6.Movie (读写)
语法:Movie As String
说明:要播放的影片路径(URL)。设置该属性为 一个 SWF 文件的 URL 将载入文件并播放它。若影片是在本地硬盘上,要写成从盘符开始的绝对路径;若影片是在某网站上,也要写全 URL 地址。
例子 :
movie.Movie = "http://www.domain.com/path1/path2/filename.swf"

movie.Movie = "c:\temp\test.swf"

7.DeviceFont (读写)
语法:DeviceFont As Boolean
说明 : 决定是否使用影片内嵌的字体, 默认值为 False。将该属性值设为 True 则强制播放器不使用影片中的内嵌的字体而使用本地系统字体。
例子:
movie.DeviceFont = True

8.EmbedMovie (读写)
语法:EmbedMovie As Boolean
说明:影片是否被存贮到控件所在的容器中。当你已载入一个影片后将该属性设为 True,播放影片时就不必再去读 SWF 文件了。这使得在 PowerPoint 简报或 VB 程序 里使用 Flash 影片更容易。但将该属性设为 True 后,控件的 Movie 属性就不再接受新的值了。要想播放另一个影片(给 Movie 属性赋新值),必须先将 EmbedMovie 属性设为 False 。
例子 :
movie.EmbedMovie = True

9.FrameNum (读写)
语法:FrameNum As Long
说明:影片当前帧的编号 (从 0 开始计数)。设置 该属性值将使影片停在由 FrameNum 指定的帧处。
例子 : 显示当前帧数:
MsgBox " 当前显示的是第 " & movie.FrameNum & " 帧。"

使影片显示第 10 帧:
Bomovie.FrameNum = 9

10.TotalFrames(只读)
语法:TotalFrames As Long
说明:返回影片中总帧数。该参数要到影片载入完成才有效(ReadyState=4)。
例子 :
If movie.ReadyState = 4 Then MsgBox " 本影片共有 " & movie.TotalFrames & " 帧。"

11.Loop (读写)
语法:Loop As Boolean
说明:是否循环播放。设为 True 是循环播放,设为 False 则只播放一次。
例子 :
movie.Loop = True

12.Menu (读写)
语法:Menu As Boolean
说明:是否显示菜单。设为 True 显示所有菜单,设为 False 菜单被屏蔽,但仍有一项“About Macromedia Flash Player...”。如果你实在不喜欢这个菜单,应该在程序中通过拦截鼠标消息的方法来达到目的。与在独立的 Flash 播放器中不同的是,在控件的右键菜单里点
“About...”的话,就会打开浏览器到 Macromedia 的网站上去 看 About 。
例子 :
movie.Menu = False

13.Playing (只读)
语法:Playing As Boolean
说明:当前播放状态。如果影片正在播放,该属性 值为 True ,否则为 False 。
例子 :
If movie.Playing = False Then MsgBox " 影片已停止播放!"

14.Quality (读写)
语法:Quality As Long
说明:画面质量(与 Quality2 联动)。Quality 可以取:
0 ——相当于 Quality2 取 "Low"
1 ——相当于 Quality2 取 "High"
2 ——相当于 Quality2 取 "AutoLow"
3 ——相当于 Quality2 取 "AutoHigh"
例子 :
movie.Quality = 1

15.Quality2(读写)
语法:Quality As String
说明:画面质量(与 Quality 联动)。Quality2 可以取:
Low:偏重于播放速度而不管显示效果,而且不启用
消锯齿功能 。
High:偏重于画面而不管播放速度,并且总是启用消锯齿功能。如果影片中不包含动画就平滑处理位图;如果有动画,那么位图就不被平滑处理。(这里的动画应该是把一张图片做平移或旋转)
AutoLow:先着重于播放速度,但只要有可能就改善显示效果。一开始播放时先禁用消锯齿功能。如果播放器检测到处理器能承受得了,就启用消锯齿功能 。
AutoHigh:一开始是播放速度和显示效果并重,但如有必要就牺牲画质确保速度。开始播放时就启用消锯齿功能。但如果实际的帧速率比设计时指定的速率慢了,就禁用消锯齿功能来提高播放速度。
例子 :
movie.Quality2 = "High"

16.ReadyState(只读)
语法:ReadyState As Long
说明:影片的当前状态。ReadyState 可以取:
0 ——正在载入
1 ——未初始化
2 ——已载入
3 ——正在交互
4 ——完成 例子 :
If movie.ReadyState = 4 Then MsgBox " 影片载入完成!"

17.Scale (读写)
语法:scale As String
说明:缩放模式(与 ScaleMode 联动)。Scale 可以 取:
ShowAll ——在控件内显示全部影片区域,保持影片 长宽比例不变,影片的大小决定于控件长或宽中较小的一 边 。
NoBorder ——在控件内显示部分影片区域,保持影片 长宽比例不变,影片的大小决定于控件长或宽中较大的一 边 。
ExactFit ——在控件内显示全部影片区域,将影片的长 宽比例强制等于控件的长宽比例。
例子 :
MsgBox " 当前的缩放模式是:" & movie.Scale

18.ScaleMode(读写)
语法:ScaleMode As Long
说明:缩放模式(与 Scale 联动)。ScaleMode 可以取:
0 ——相当于 Scale 取 "ShowAll"
1 ——相当于 Scale 取 "NoBorder"
2 ——相当于 Scale 取 "ExactFit"
例子:使影片的缩放模式改成“ExactFit ”:
movie.ScaleMode = 2

19.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"

20.WMode (读写)
语法:WMode As String
说明:控件的窗口模式。WMode 可以取: Window —— WMode 属性的默认值,按 Flash 播放器
典型的方式工作,即在控件的矩形窗口中播放影片,这样一 般都能提供最快的动画效果。
Opaque ——使影片不透明。 Transparent ——创建一个透明的影片。如果影片中有
透明的片段,放到这里时,就可以看到控件下面的背景。但 使用此属性值,动画的播放速度可能会慢一些。
例子 :
movie.WMode = "Transparent"
 楼主| 发表于 2013-5-28 22:20:09 | 显示全部楼层
还请告知如何创建低版本 flash.ocx 对象的方法
用$Flash = ObjCreate("ShockwaveFlash.ShockwaveFlash")
创建对象,播放金鹰教程一半就黑屏
我试了很多办法,包括在PE里将上面的  flash.ocx  替换到 flash32_11_6_602_180.ocx
(在XP里替换不了)播放一切正常
现在的问题是不注册 flash.ocx 而是直接嵌入调用
(注册了 flash.ocx 上优酷看不了视频)
我还试过
$Flash = DllCall ( "flash.ocx", "HANDLE", "DllGetClassObject "  )
但不能正常创建对象
 楼主| 发表于 2013-5-29 09:34:58 | 显示全部楼层
请 P 大进来看看
发表于 2013-5-30 23:23:26 | 显示全部楼层
开源了,支持,,
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-11 03:44 , Processed in 0.081580 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表