100份赠送求助!

lgm 2002-09-01 09:06:12
(1)、pb中如何能灵活控制声音的播放:
即要达到能随时播放,暂停,停止!而且能几个声音文件随时切换!

最好能达到背景音乐不停的放,随时能同时播放其他声音.

现时的情况;
0、我能实现声音的播放
1、背景我用*.mid文件,其他文件是*.wav文件.
2、可是声音能放出来,但是不能随时让他暂停,老是要等到她播放完毕才停止。

如何才能自由的控制它的开和关。


(2)现时程序中使用ole(shockware flash object)控件播放flash,请问谁知道这个控件的命令如何实现?
现时我只知道该控件播放文件的载入和播放,暂停的命令,其他的就不知道了!特别是使用该控件如何才能停止flash本身的声音(我只会用ole_1.object.stop()命令停止flash动画,但是声音消不去)

知道解决方法的大虾,请详细的说明一下,最好写出命令格式(具体的)!
...全文
94 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgm 2002-09-06
  • 打赏
  • 举报
回复
不好意思!忙的给忘啦!
现在赠分!
lkyuan 2002-09-03
  • 打赏
  • 举报
回复
结帐了~~
WorldMobile 2002-09-03
  • 打赏
  • 举报
回复
把帖子结了吧,蹭点分花花
sandorn 2002-09-03
  • 打赏
  • 举报
回复
该结贴了吧!!
balloonman2002 2002-09-01
  • 打赏
  • 举报
回复
(1)第一个问题,关键看你用的什么控件来播放声音的,比如MEDIA PLAY控件,它提供了STOP的方法的,而且也有相应的STATUS属性来表示处于什么状态,是播放,还是停止,还是暂停,你可参考;
(2)第二个问题,参考FLASH控件的帮助,而且你在选择“OLE CONTROL CLASS”的界面下有一个“BROWSE”按钮,点击它,你可以查看到该控件所有的事件、方法、函数、属性的,很方便;
(3)这些东西我没具体做过,没法给具体代码,你可到网上搜索,不一定非要PB的,这些控件的属性、方法、函数在其他语言中也都是相通的。
freshman113 2002-09-01
  • 打赏
  • 举报
回复
多的是例子,随便找本PB大全之类书藉看看吧。
balloonman2002 2002-09-01
  • 打赏
  • 举报
回复
再转一个!

我们常用的软件如Word,Excel,PhotoShop等在运行时都有一个Splash封面,该封面既显示软件的名称、版本、开发人员以及使用者等信息,又可以在后台初始化数据库和软件需要调用的文件。但这些Splash封面文件通常只包含静态的图片和文本对象,常常显得比较单调。我们是否可以将Splash封面文件做成动态的呢?答案当然是可以的。笔者在用PowerBuilder 8.0为单位开发工资软件时通过调用Flash文件制作出新颖、漂亮的Spalsh封面。以下详细介绍制作过程。
1.先将Swflash.Ocx文件复制到Windows\system32(若为Windows98系统则为System目录)下,然后单击开始,运行,在运行框中输入Regsvr32 c:\windows\system32\swflash.ocx,单击确定即可注册swflash.ocx控件 。


2.在Flash中制作一大小为550px×450px的Flash文件splash.fla,并输出为splash.swf,保存在开发目录下。
3.在PowerBuilder中新建一应用Splash.pbl,在应用的Open事件中添加如下代码:Open(w_splash) //打开Splash封面窗口。
4.在Powerbuilder中新建一函数wf_get_Curr_dir,Access为Public,Return Type 为String,函数名为wf_get_Curr_dir,在该函数中添加如下代码
//获得当前应用所在的目录
string ls_Buffer

ls_Buffer=Space(255)

IF GetCurrentDirectoryA(255,ls_Buffer)=0 THEN SetNull(ls_Buffer)

RETURN ls_Buffer

代码中的GetCurrentDirectoryA为WindowsAPI函数,在应用的Globa External Functions中声明:
Function ulong GetCurrentDirectoryA(ulong nBufferLength,ref string lpBuffer) Library "kernel32.dll"
5.新建一窗口w_Splash,其属性如下表:
窗口/控件名 值
WindowType Popup!
WindowState Normal!
Visible True
Enabled True
ClientEdge True
Center True
Width 1847
Height 1092
将窗口的Titlebar、ControlMenu、MaxBox、MinBox、PaletteWindow、RightToLeft、Border等全部取消选择。
6.在窗口中插入一Ole控件,打开如下对话框:


单击Insert Control页面


在Control Type下的列表框中选择Shockwave Flash Object,然后单击OK按钮即可在窗口中插入flash控件,其属性设置如下表:
窗口/控件名 值
Name Ole_1
Visible True
Enabled True
BorderStyle StyleLowered!
其它属性保持不变。
在窗口的Open事件、Close事件、Timer事件中分别加入如下代码:
Open事件:
String ls_path,ls_swffile
ls_path=wf_get_curr_dir() //获得当前应用的路径
ls_swffile=ls_path+'\splash.swf'
ole_1.move(0,0)
ole_1.width=this.workspacewidth( )
ole_1.height=this.workspaceheight( )
ole_1.object.movie(ls_swffile)
ole_1.object.play()
timer(5,this)

Close事件:
timer(0,this)
//open(w_logon) //打开登陆窗口

Timer事件
Close(this)

至此本应用的Splash封面窗口建立完毕,单击运行按钮即可运行。运行的效果图如下


以上程序在Windows98/2000/xp 和Powerbuilder 7.0/8.0下运行通过
balloonman2002 2002-09-01
  • 打赏
  • 举报
回复
FLASH的例子:
(一)参见:http://www.pdriver.com/product/touchpb/
(二)见下:


从Web站点读取Flash动画演播的PB6.5编程
贵州大学计算机软件与理论研究所
李 元
---- Flash动画不仅包含动画,还可有声音、超文本连接,同时由于它是矢量格式文件,生成的这种包含动画、声音等的文件(*.swf)很小,非常适合在网络上传输使用,因而在当前Web网页技术中得到很快发展。本文讨论在PowerBuilder6.5数据库编程中用Flash4提供的控件"Swflash.ocx"进行Web站点访问,获取Flash动画播放。

---- 下面是具体作法:

建立应用对象
---- 运行PB,选菜单"File | New"建立一个应用对象,将它起名为app_flash,并将其应用对象库起名为flash.pbl存盘;选工具栏的图标"Window"放入一个窗口,起名为w_flash,在这个窗口中放下述控件:一个单行文本编辑框(SingleLineEdit)sle_1用来输入要提取进行演播的Flash动画文件(*.sws)所在的URL's(存放在本机磁盘或存放在Internet远程Web服务器的Flash动画文件);两个命令按钮(CommandButton)cb_1用来执行提取并演播键入文本框sle_1中的Flash文件,命令按钮cb_2用来退出软件运行。


用OLE连接 Flash 4的控件Swflash.ocx
---- 选菜单"Cotrols | OLE",出现窗口"Insert object",选"Insert Control",在Control Tyle栏里找出"Shockware Flash Object"(若该控件尚未注册,可先选"Register Now"对该控件进行注册);回到PB窗口,用鼠标点击安放此控件在窗口上并调整大小。(再用鼠标右击,出现浮动菜单,选"OCX Property"设置控件的属性)。


对Flash 4的控件的主要属性
---- Flash 4的控件Swflash.ocx主要提供了下列属性在编程中使用:

---- Movie属性:存放Flash动画文件的URL's:在本机磁盘时写全目录名,例如: d:\lxrj\lixiang\lxpaper\2000\t04\bol.swf 在Internet上按浏览网页的方式:例如(下面是实际存放在贵州大学Web服务器上的一个Flash文件) http://www.gzu.edu.cn/~lixiang/bol.swf

---- Quality(分辨率)属性:播放的分辨率,有0(low),1(AutoLow),2(Hight),3(AutoHight),4(Best)五个值

---- Scale属性:播放的屏幕,有0(ShowAll), 1(NoBorder), 2(ExactFit)三个值

---- Loop(循环播放)属性:true, false

---- menu(菜单)属性:true, false


对Flash 4的控件Swflash.ocx进行编程
---- 明白了Flash控件的主要属性后,即可根据应用的需要进行编程,在我们上面对窗口的安排中,仅需对"播放"按钮cb_1的clicked事件录入下述代码即可(不愿编代码的读者可以用鼠标右击窗口的OLE控件界面,打开属性页填写):

ole_1.Object.movie=sle_1.text
ole_1.Object.scale=0
ole_1.Object.loop=true
ole_1.Object.Quality=4
ole_1.Object.Scale=2
ole_1.Object.menu=true

---- 为方便退出,在另一个命令按钮cb_2的clicked事件中录入代码:close(parent)

运行测试:
---- 关闭窗口w_flash,回到应用对象app_flash,选菜单"Entry | Script",在open事件中录入代码: open(w_flash) 后选图标"Run",运行(URL's:http://www.gzu.edu.cn/~lixiang/bol.swf是贵州大学站点,24小时开放,有兴趣的读者可用来调试这个程序)。

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧