|
主题: 如何用lingo控制绘图?
|
 rainy_5d
职务:普通成员
等级:2
金币:1.0
发贴:225
|
#12001/2/10 20:34:32
各位高手,我想用lingo来控制绘图,例如直线,可是每次只能绘制一次,下次又重新绘制了,如何才能用lingo重复绘图呢?绘图的member是什么呢?bitmap还是vectorShape?谢谢。
我的代码:(加在一个按钮上,我想用按钮重复绘图,按钮在通道1)
property pDrawNum property pDrawMem
on beginsprite me pDrawNum=0 end
on mouseUp me pDrawNum=pDrawNum+1 if pDrawNum=1 then pDrawMem=new(#vectorshape) pDrawMem.name="line" end if member(pDrawMem).vertexList = [[#vertex:point(0,0)],[#vertex:point(100,100)]] tempcolor=member(pDrawMem).strokecolor tempcolor=rgb(255,0,0) member(pDrawMem) .strokecolor=tempcolor puppetSprite 2,TRUE sprite(2).member=member(pDrawMem) end
编辑历史:[这消息被rainy编辑过(编辑时间2001-02-11 14:09:20)]
|
 D计划-混沌
职务:管理员
等级:6
金币:15.2
发贴:3528
|
#22001/2/11 1:43:22
member(pDrawMem).addvertex(i,point(x,y))
|
 donlee
职务:普通成员
等级:1
金币:1.0
发贴:271
|
#32001/2/11 8:45:46
Director8支持vector和image两种方式和作图。 从你的帖子看,你指的是矢量作图。矢量作图比较典型的例子可以参考《Director7开发使用手册》相关章节。 我在macromediachina上发过用image lingo制作柱图和饼图的代码,与《Director7开发使用手册》中的实例相比,只用一个sprite即可,希望能对你有所帮助。
|
 rainy_5d
职务:普通成员
等级:2
金币:1.0
发贴:225
|
#42001/2/11 14:07:39
谢谢donlee,可能是我没有表达清楚,我的意思不是按下按钮一次,将所有的图形绘制完(不用repeat)。而是单击一次,绘制一次,就存在如何正确显示初始图形的问题。 另,没有买到《Director7开发使用手册》,烦请详述,谢谢。
|
 donlee
职务:普通成员
等级:1
金币:1.0
发贴:271
|
#52001/2/12 8:43:20
其实这个问题您自己已经解决了,代码中不是有: --------------------- property pDrawNum property pDrawMem
on beginsprite me pDrawNum=0 end
on mouseUp me pDrawNum=pDrawNum+1 --------------------
下面加上 draw(pdrawnum)或sendsprite(X,#draw,pdrawnum)
只要在合适的地方加入 on draw number --用if else或case,根据number值作相应的图 end
不知我这次理解得对否?
|
 rainy_5d
职务:普通成员
等级:2
金币:1.0
发贴:225
|
#62001/2/12 23:00:44
谢谢donlee兄,我明白你的意思了,呵呵。我怎么没想到呢? 另外,说到lingo的“面向对象”,我想到一个效率的问题: 从前不用对象编程,很少写sprite behavior,一般用movie script,常用global来定义全局变量,这样我想也有一个好处,拿那个“面向对象”的教程来说(入侵者),为能在适当的时候从屏幕边缘返回,入侵者总在检测屏幕宽度,虽然在beginsprite句柄中定义一次,但有多少个入侵者,就需要赋值多少次。 若在movie script中定义全局变量,只需要一次便可。这样的效率觉得要比面向对象的behavior要高啊,呵呵,理解的不正确之处,恳请指教。
|
 donlee
职务:普通成员
等级:1
金币:1.0
发贴:271
|
#72001/2/13 10:59:19
关于效率,有多个方面,时间复杂度(比较一下冒泡法排序与快速排序),空间复杂度(比较一下深度搜索与广度搜索),还有人工方面的问题。 通常,在算法相同听情况下,面向对象可能在时间和空间复杂度都略逊于结构化编程,但考虑到代码的复用性、易于调试等等其它因素,面向对象还是更有意义的。对于系统而言,规范可能比技巧更重要--当然,仁者见仁,智者见智。 另外,在director中,behavior不一定比movie script效率低。
|