社区
Delphi
帖子详情
用Delphi播放Flash的问题...
bluesky_521
2002-09-23 09:08:31
如何用Delphi播放Flash,并能判断Flash影片播放完毕?
...全文
436
8
打赏
收藏
用Delphi播放Flash的问题...
如何用Delphi播放Flash,并能判断Flash影片播放完毕?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bluesky_521
2002-11-07
打赏
举报
回复
多谢大家支持,特别感谢crazyz(乘风)和 liang_z(千山一刀之忍者神龟)
D_Q
2002-09-26
打赏
举报
回复
总针探测不准确的原因是它的“洋葱皮”效果 呵呵
lf43
2002-09-26
打赏
举报
回复
up
bluesky_521
2002-09-26
打赏
举报
回复
To D_Q(A.Dai)(阿呆):
麻烦你解释一下“洋葱皮”,先谢了。
===================
To crazyz(乘风):
这段程序我试了,非常棒,多谢了。如果有SwfToExe程序,烦劳你再发给小弟。
crazyz
2002-09-25
打赏
举报
回复
这有一个Ext2Ext的函数可将.exe文件转为.Swf的文件。
function ExeToSwf(ExeName: string): string;
var
SourceStream, DestinyStream: TFileStream; // 分别处理EXE、SWF文件的文件流
SwfFileSize: Cardinal; // SWF文件的大小
SWfName: string;
begin
if lowerCase(ExtractFileExt(ExeName))<>'.exe' then exit;
Result := '';
// 打开EXE形式的源文件
SourceStream := TFileStream.Create(ExeName,fmOpenRead);// or fmShareExclusive);
try
// 读取文件标志
SourceStream.Seek(- 2 * sizeof(integer), soFromEnd);
SourceStream.ReadBuffer(SwfFileSize, sizeof(integer));
// 判断读到的文件标志是否和FA123456相同
// 借此判断是否是Macromedia官方格式的Flash文件
if SwfFileSize = $FA123456 then
begin
// 读取SWF文件的大小
SourceStream.ReadBuffer(SwfFileSize, sizeof(SwfFileSize));
SourceStream.Seek(- SwfFileSize - 2 * sizeof(integer), soFromEnd);
// 打开目标SWF文件
SwfName := ChangeFileExt(ExeName,'.swf');
DestinyStream := TFileStream.Create(SwfName, fmCreate);
try
// 从EXE文件流中读取数据
DestinyStream.CopyFrom(SourceStream, SwfFileSize);
Result := SwfName;
finally
// OK,释放文件流
DestinyStream.Free;
end;
end
else
ShowMessage('Unknown type of executable flash file!');
finally
// OK,释放文件流
SourceStream.Free;
end;
end;
bluesky_521
2002-09-25
打赏
举报
回复
谢谢上面两位的支持,我自己也做了一些尝识。
判断一个Flash影片是否播放完毕,理论上(我想)应该是
MyShochwaveFlash.TotalFrames=MyShockwaveFlash.CurrentFrame时,
但是我发现,影片总是在最后1-3祯时就停止了,所以实际上我是这样判断的:
MyShockwaveFlash.TotalFrames-MyShockwaveFlash.CurrentFrame<=3时。
//______________________________________________________________
我又遇到了一个问题:现在好多Flash影片都作成了.exe文件,
我如何在程序中播放它,又能判断它播放结束了呢?
请高手指点...
liang_z
2002-09-23
打赏
举报
回复
delphi里播放flash
在flash大行其道的今天,是否想过在你的程序里也加入几幅flash炫一炫?我们就来试试,前提
是你要装有flash播放软件(你的IE能显示flash),IE之所以能显示flash是安装了一个swflash.ocx
控件,由Macromedia, Inc.提供,我们也用它了,win98在$Windows\System\Macromed\Flash,win2k
在$Winnt\System32\Macromed\Flash下。ActiveX控件在windows里是通用的,delphi当然也支持,打
开你的delphi我们开始了。选择菜单Component --> Import ActiveX Control,选择SWFlash.OCX 文
件,安装,完成后在ActiveX面板里出现TShockwaveFlash控件,这是delphi对SWFlash.OCX的封装,现
在我们就可以用这个控件来播放flash了。拖一个过来放在form上,指定其Movie属性为d:\test.SWF,
按F9,一切OK。delphi编程就是这么轻松、自在。
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, Top=+4, Bottom=+8。
BackgroundColor - 背景色,red*65536+green*256+blue,-1为默认颜色。
Loop - 是否循环。
Movie - 指定播放的flash文件路径,可以为一个URL.
方法:
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-按窗口百分比
事件:
OnProgress(int percent) - 读取一个flash时触发。
OnReadyStateChange(int state) - 状态改变时触发。states 可以为 0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete。
具体帮助请参见http://www.macromedia.com/support/flash/
此为本人心血来潮之作,不足之处恳请指正,欢迎有兴趣者共同探讨(ypy@yeah.net)。
houwf
2002-09-23
打赏
举报
回复
播放用shockwave插件,至于判断小的就不知道了。
Delphi
_
Flash
.rar_
delphi
_
delphi
flash
_
flash
delphi
Delphi
之
Flash
界面,
Delphi
可以
播放
Flash
啦
Delphi
播放
Flash
动画文件..rar
Delphi
播放
Flash
动画文件..rar
delphi
chromium cef3.2171.1949(win32)
d7,d2010,xe2~xe5,libcef.dll版本3.2171.1949, 附带
flash
插件,支持
播放
视频
播放
Flash
动画.zip源码
Delphi
项目程序源码下载
播放
Flash
动画.zip源码
Delphi
项目程序源码下载
播放
Flash
动画.zip源码
Delphi
项目程序源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.上线产品适合小公司开发项目参考
Almdev.Smart
Flash
.v1.5.Full.Source.
Delphi
.BCB.BDS.ccrun.rar
Almdev.Smart
Flash
.v1.5.Full.Source.
Delphi
.BCB.BDS.ccrun.rar
Delphi
5,928
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章