在Director中实现文本滚动
来源:互联网 发布:淘宝装修需要什么软件 编辑:程序博客网 时间:2024/05/16 04:52
最近有不少的朋友问我有关在DR中如何实现文本滚动效果的问题,我只给了一些方法的提示,我本身认为这个问题是比较的简单的,但是随着问的多了,也就意识到这个问题涉及的问题还真不少(自己是小瞧了这个问题了),后来就想找个典型的范例来和朋友们共同讨论这个问题,在网上无意的浏览时候发现了下面的这个行为,使我对这个问题的认识更深了一步(里面还是有不少的技巧的),我从下面的程序里面也得到了一种新的行为编写思维方式,同时在其他方面也得到了应用。下面就是这个程序,我做了一些简单的注释:
property pMem
property pImage
property pScroll
property pWidth, pHeight
property pVisibleHeight
property pBackgroundColor
###定义这个行为的属性设置###
on getPropertyDescriptionList me
list = [:]
addProp list, #pVisibleHeight, [#comment: "Visible Height", #format: #integer, #default: 100]
return list
end
on beginSprite me
n 获得Text Member 的大小
pWidth = sprite (me.spriteNum).member.width
pHeight = sprite (me.spriteNum).member.height
n 获得文本图象的大小
pImage = duplicate (sprite (me.spriteNum).member.image)
pBackgroundColor = sprite (me.spriteNum).member.bgColor
n 创建一个新的位图以供我们使用
pMem = new (#bitmap)
pMem.image = image (pWidth,pHeight,32)
pMem.regPoint = point (0,0)
sprite (me.spriteNum).member = pMem
n 实现图象从低部向上滚动
pScroll = -pVisibleHeight
setImage (me)
end
on setImage me
n 利用Fill命令使图象充满背景色
pMem.image.fill (rect (0, 0, pWidth, pVisibleHeight), pBackgroundColor)
n 放置图象到相应的位置上
pMem.image.copyPixels (pImage, rect (0 ,0, pWidth, pVisibleHeight), rect (0, pScroll, pWidth, pVisibleHeight + pScroll))
end
on exitFrame me
n 设置滚动的速度为一个象素
pScroll = pScroll + 1
n 如果滚动文本结束了,在这里设计循环
if pScroll > pHeight then pScroll = -pVisibleHeight
setImage(me)
end
on endSprite me
erase pMem
end
这个行为比我以前常用的方法是方便多了,先面我介绍一下这个行为的基本编写思路,如果对Lingo很熟悉的朋友通过上面的程序就能够看的出来了,我再说这些就现的罗嗦了。但我还是想说一下我的体会(真是不可救药啊!)
这个行为的最大的特点就是节约了空间,只要一个SCORE就可以了。还有一个巧妙的用法就是用了FILL命令,这样在移动文本图象的时候擦除旧的图象
property pMem
property pImage
property pScroll
property pWidth, pHeight
property pVisibleHeight
property pBackgroundColor
###定义这个行为的属性设置###
on getPropertyDescriptionList me
list = [:]
addProp list, #pVisibleHeight, [#comment: "Visible Height", #format: #integer, #default: 100]
return list
end
on beginSprite me
n 获得Text Member 的大小
pWidth = sprite (me.spriteNum).member.width
pHeight = sprite (me.spriteNum).member.height
n 获得文本图象的大小
pImage = duplicate (sprite (me.spriteNum).member.image)
pBackgroundColor = sprite (me.spriteNum).member.bgColor
n 创建一个新的位图以供我们使用
pMem = new (#bitmap)
pMem.image = image (pWidth,pHeight,32)
pMem.regPoint = point (0,0)
sprite (me.spriteNum).member = pMem
n 实现图象从低部向上滚动
pScroll = -pVisibleHeight
setImage (me)
end
on setImage me
n 利用Fill命令使图象充满背景色
pMem.image.fill (rect (0, 0, pWidth, pVisibleHeight), pBackgroundColor)
n 放置图象到相应的位置上
pMem.image.copyPixels (pImage, rect (0 ,0, pWidth, pVisibleHeight), rect (0, pScroll, pWidth, pVisibleHeight + pScroll))
end
on exitFrame me
n 设置滚动的速度为一个象素
pScroll = pScroll + 1
n 如果滚动文本结束了,在这里设计循环
if pScroll > pHeight then pScroll = -pVisibleHeight
setImage(me)
end
on endSprite me
erase pMem
end
这个行为比我以前常用的方法是方便多了,先面我介绍一下这个行为的基本编写思路,如果对Lingo很熟悉的朋友通过上面的程序就能够看的出来了,我再说这些就现的罗嗦了。但我还是想说一下我的体会(真是不可救药啊!)
这个行为的最大的特点就是节约了空间,只要一个SCORE就可以了。还有一个巧妙的用法就是用了FILL命令,这样在移动文本图象的时候擦除旧的图象
- 在Director中实现文本滚动
- Director中读写外部文本的技术
- 在director中调用dll
- 在状态栏中显示滚动文本
- 在Director中发送E-mail
- Android中TextView文本过长滚动显示实现
- 双缓冲实现滚动文本
- 双缓冲实现滚动文本
- 文本滚动效果 [已实现]
- WindowsPhone8 实现文本滚动效果
- JavaScript实现竖直文本滚动
- js实现滚动文本显示
- 自定义控件实现文本滚动
- 在extjs中实现的文本编辑器
- C#中控件文本滚动
- QT 实现在ui控件QLabel中实现滚动字幕
- HTML中如何在div中实现滚动条?
- j2me学习笔记【10】——Ticker类实现在屏幕上横向滚动文本
- MS Flex Grid控件的使用(续三)
- 中国电信业一升一降的解析
- 奇摩,你来大陆干什么?
- Netscape 6.1特性概览
- 在Word中实现表格的行列互换
- 在Director中实现文本滚动
- 设计模式迷你手册 更新了!!!每一个模式都增加了C++和C#例子代码!
- 设计模式迷你手册——附C++和C#例子代码 (from http://redsword.cn.st)
- Emergency! Emergency!! Is Visual C++ Being Abandoned?
- 获取SQL Server服务器列表的几种方法
- 对.NET Framework "事件"机制理解的代码分析
- .NET Framework 自动内存管理机制深入剖析 (C#分析篇)
- 剖析TThread类
- 基于授权和角色的访问控制的设计和实现(一)