通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>网络媒体>>director>>正文 新版上线![旧版]
注:打开慢时请稍等

shockwave 预载技术(3)

http://www.iyit.net  日期:2006-5-29 8:55:48  来源:网络转载   点击:
参加讨论】shockwave 预载技术
   原著:lingoworkshop
   翻译:alphachi

第二部分:进度条组件

   在上一部分,我们创建了一个“preloader”父代剧本用来:(1)预载一个url;(2)当预载完成时发送一个消息;(3)预载进行时发送“状况”消息。在这一部分,我们将创建一个可以显示当前状况(例如预载完成的百分比)的进度条。

   创建进度条有很多种方法。我们可以使用flash角色、可拉伸的图形角色、普通的文本角色以及像os controls这样的xtras提供的相关组件等,不过在这里,我们选择了imaging lingo。无论使用何种方法,剧本自身都应该能够对下列消息做出响应:(a)等待连接到服务器时发送的mshowworking消息;(b)知道预载已经完成多少时发送的mshowprogress消息(是一个数值)。

   当我们将mshowworking消息发送给下面的剧本时,一个简单的动画将被绘制到舞台上。当我们发送mshowprogress消息时,这个动画将被一个简单的进度条替换。

simple progress bar (v.1)

-- 声明属性变量
property mycolour, mycolour2
property mycanvas, myscreenrect, mybuffer, mybufferrect
property mystep, mysegmentsize

on beginsprite me
   thissprite = sprite ( me . spritenum )
-- 确定绘制范围
   myscreenrect = thissprite. rect
-- 对输出图像进行引用
   mycanvas = ( the stage ). image
-- 创建图像缓冲
   mybuffer = image (myscreenrect. width , myscreenrect. height , 24 )
   mybuffer. copypixels (mycanvas, mybuffer. rect , myscreenrect)
-- 存储rect以便稍后使用
   mybufferrect = mybuffer. rect
-- 建立动画运行参数
   mystep = 0
   mysegmentsize = mybuffer. height - 4
-- 控制其他的角色
sendallsprites ( # mregisterwidget, me , # progressbar)
end

on mshowprogress ( me , amt)
-- 确保amt在0和1.0之间
   amt = min ( 1 . 0 , max ( 0 , amt))
-- 复制缓冲
   buffer = mybuffer. duplicate ()
-- 绘制边界
   buffer. draw (mybufferrect, [ # shapetype: #rect , # color: mycolour])
-- 计算基于显示数量的填充rect
   progressbarrect = rect ( 2 , 2 , (mybufferrect. width - 2 )*amt, mybufferrect. height - 2 )
-- 填充进度条rect
   buffer. fill (progressbarrect, mycolour)
-- 将运行结果复制到舞台上
   mycanvas. copypixels (buffer, myscreenrect, mybufferrect)
end

on mshowworking ( me )
-- 复制缓冲
   buffer = mybuffer. duplicate ()
-- 绘制边界
   buffer. draw (mybufferrect, [ # shapetype: #rect , # color: mycolour])
-- 给属性变量mystep加1,以便单独移动stripes
   mystep = mystep + 1
-- 如果绘制部分过大则进行重设
if mystep > 0 then mystep = -mysegmentsize
-- 创建临时图像
   innerrect = buffer. rect . inflate (- 2 ,- 2 )
   innerimage = image (innerrect. width , innerrect. height , 24 )
   innerimage. fill (innerimage. rect , mycolour)
-- 绘制stripes
   l = mystep
repeat while true
     drect = rect (l, 0 , l + mysegmentsize, mysegmentsize+ 2 )
     innerimage. draw ( point (l, 0 ), point ( l + mysegmentsize, mysegmentsize), [ # shapetype: #line , # linesize: 1 , # color: mycolour2, # ink: 2 ])
     l = l + mysegmentsize
if l > buffer. width then exit repeat
end repeat
-- 向缓冲中添加内容
   buffer. copypixels (innerimage, innerrect, innerimage. rect )
-- 将运行结果复制到舞台上
   mycanvas. copypixels (buffer, myscreenrect, mybufferrect)
end

on getpropertydescriptionlist ( me )
   pdlist = [:]
   pdlist[ # mycolour] = [ # comment: "bar colour" , # format: #color , # default: rgb ( 68 , 68 , 68 )]
   pdlist[ # mycolour2] = [ # comment: "stripe colour " , # format: #color , # default: rgb ( 255 , 255 , 255 )]
return pdlist
end

   这个简单的进度条行为本身唯一的作用只是对mshowworking和mshowprogress消息做出响应,而当beginsprite事件发生时,它又会发出一个mregisterwidget消息,这样做的目的是让别的对象能够获得对其的引用(作为参数和mregisterwidget消息同时被发送的“me”引用)。这些对象需要此引用以便进行反馈工作,当然,也可以使用sendsprite和sendallsprite命令实现这一点。

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:director 影片剧本、父代剧本与行为
下一篇:shockwave 预载技术(2)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
发布director mx 2004
directmedia xtra 在 director 中的应
speech xtra 应用(director mx 新增 
谈谈director作品的发布模式
关于多媒体程序运行速度的研究
博客网总裁辞职
发布director mx 2004
directmedia xtra 在 director 中的应
speech xtra 应用(director mx 新增 
谈谈director作品的发布模式
关于多媒体程序运行速度的研究
director mx 2004教程--哪些人适合使用
director mx 2004教程--常用多媒体编著
director mx 2004教程--为什么选择dir
director mx 2004教程--director与fla
发布director mx 2004
directmedia xtra 在 director 中的应
speech xtra 应用(director mx 新增 
谈谈director作品的发布模式
关于多媒体程序运行速度的研究
优秀公益广告作品欣赏(8)
java数据类型转换
windows xp专业版iis连接数的更改
新开放qq免费挂级网站
优秀公益广告作品欣赏(7)
免费在qq上看在线电影电视听音乐
qq最新版下载 2006 beta2 体验新感受 
office2007简体中文版浮出水面 美图抢
qq珊瑚虫外挂4.0版本发布!
免费把qq炫铃设为本机qq的系统提示音
dreamweaver mx 2004从零开始(1)
利用css改善网站可访问性
如何让mm的脸通透可人
msn8.0下载
asp 五大高效提速技巧
如何在win20003中更好的玩游戏
qq收费头像免费使用的方法 
微软将在华推分期付款,充值卡pc 可低价
 amd处理器am2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息