主题:  你遇到过吗?--问题口袋

liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#12001/3/13 22:27:40
问题口袋
听说LINGO无所不能,我有些简单的LINGO问题想请教一下大虾们
1、在LINGO中如何实现SPRITE从一个地方移动到另一个地方?
2、我最近用DIRECTOR做一个东西,里面有一个主画面,是分成四块的(由四幅小图组成),分别对应四个交互,现在的问题是:如果当用户点击左上的交互时,主画面整体向右下角移动,并逐步放大,使原来左上角的小画面占据屏幕中央,然后再跳转到别的地方。用LINGO如何实现?
3、如何用LINGO来检测本系统的AAA目录中是否存在某个文件(如XXX.XX)?
4、要在DIRECTOR中做下个时钟演示器,(一个带有十二个等分点有圆,一根时针,一根分针,当分针转过十二个等分点时,分针转过一个等分点),能用LINGO来玩成吗?怎样写LINGO?
5、原本对齐的文本,生成EXE文件后运行就出现左移而错位,这究竟是怎么回事?

请大虾们谈谈您的经验!先谢谢了!



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#22001/3/14 11:53:18
1.sprite().loc=[x,y]
2.sprite(左上)定位点为左上(缺省为sprite中心,paint中设定)
sprite().width=sprite().width+
sprite().height=sprite().width*(原图宽高比)
....以此类推(注意定位点,这样写起来程序简单些)
3.FILOIO(http://www.5dmedia.com/bbs/newsdetail.asp?id=16945
4.BEHAVIOR-CONTROLS-ANALOGCLOCK
5.??,请查看帮助-paragraph相关



liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#32001/3/14 22:11:51
非常感谢54zq!我还是有点不明白!!
“2、我最近用DIRECTOR做一个东西,里面有一个主画面,是分成四块的(由四幅小图组成),分别对应四个交互,现在的问题是:如果当用户点击左上的交互时,主画面整体向右下角移动,并逐步放大,使原来左上角的小画面占据屏幕中央,然后再跳转到别的地方。用LINGO如何实现?”如果同时存在右上、左下、右下有同样的交互,那又如何定SPRITE的中心呢?
谢谢您的解答!!



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#42001/3/16 19:30:16
我想了三种解决的办法
1.就是上述办法,定位的方式为(
sprite(左上)定位点为左上,sprite(右上)定位点为右上,sprite(左下)定位点为左下,sprite(右下)定位点为右下,点击各sprite时,此sprite因定位点原因,只需直接改变他的width和height,其它各sprite
的位置靠left,right,top,bottom的相对对齐来得到(与自身的定位点就没关系了),应该是很好实现的,这是一个比较取巧的办法,但能很好解决这个问题
2。用rect,举一个例子

图例四图位置 2 1
3 4

on beginsprite
global j
set j =1
end
on exitframe
global j
if j<11 then
sprite(1).rect=sprite(1).rect+[-40,0,0,30]
sprite(2).rect=sprite(2).rect+[-40,0,0,30]+[-40,0,-40,0]
sprite(3).rect=sprite(3).rect+[-40,0,0,30]+[-40,0,-40,0]+[0,30,0,30]
sprite(4).rect=sprite(4).rect+[-40,0,0,30]+[0,30,0,30]
else
go frame "tz"
end
3。用image和copypixles将4副小图合成一新的图片,然后。。。。。



liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#52001/3/20 0:16:40
非常感谢54zq这么仔细的解答!无奈我底子太薄,还要发问,不好意思!
你所说的:“1.就是上述办法,定位的方式为(
sprite(左上)定位点为左上,sprite(右上)定位点为右上,sprite(左下)定位点为左下,sprite(右下)定位点为右下,点击各sprite时,此sprite因定位点原因,只需直接改变他的width和height,其它各sprite
”sprite的定位点是用LINGO来定的吗?用的什么语句?
现在我又遇到一个问题:
我的用户对鼠标操作不熟,原本在主画面的四个交互需要加入    按键(1、2、3、4、)来控制,我在on mouseDown me
go to "cchu1"

end
下面又加了:
on keydown
if the key = "1" then
 go to "cchu1"
end if
end
等等
但只有按“1”时有响应,而其它相类似做的“2”“3”“4”却无响应。这是怎么回事?只有将if the key = "1" then---if the key = "2" then---if the key = "3" then---if the key = "4" then---写在一起时才有效,但这在整个电影中“1”“2”“3”“4”都有效。这是否太浪费资源了?要实现我这样的功能,些什么样的做法?最简单的LINGO是什么?



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#62001/3/20 12:32:34
1.手动--在paint中G
lingo--
set the centerRegPoint of member i= TRUE
set the regPoint of member i= point(x,y)
2.??
你写在什么地方
------------------------
on exitFrame me
go to the frame
end
on keydown
case the key of
"1":go 1
"2":go 2
...............
end case
end
--------------------





liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#72001/3/20 21:47:12
太谢谢了!我是写在sptite script中的!
又有一个问题:我在写LINGO语句时到底写在何种script中才合理?这里面有些什么样的实用的原则?呵呵!不要嫌问题太大了哟!



liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#82001/3/23 1:12:39
我在写LINGO语句时到底写在何种script中才合理?这里面有些什么样的实用的原则?



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#92001/3/23 12:36:10
这好像得讲讲script(脚本)的分类
一般director的书籍都会谈及script(脚本)的分类
script(脚本)按性质只应该分为四类,就是moviescipt(电影脚本),behaviorscript(行为脚本),parentscript(父脚本),castscript(演员脚本),可以在cast中明显看到这四者标记的不同
moviescipt(电影脚本):这种脚本只要存在就在整个影片中都响应,他不能放置在演员表中,(ctrl+0编辑)
behaviorscript(行为脚本):也称scorescript(剪辑室脚本),这种脚本把关联到剪辑室时才起作用,可以把他拖拽至一个sprite(角色)或frame(帧)通道上(ctrl+alt+;编辑)
--(所以也经常把behaviorscript分为spritescript和framescript)
parentscript(父脚本):在用lingo调用前,几乎不起任何作用,(通过castmemberproperties的type转换)
(type可使script在以上三种脚本中自由转换,在它下面将会发现link script as,一个很好的功能,呵呵,)
castscript(演员脚本):这种脚本写在cast(演员)内部是跟随且仅对所在cast(演员)起作用,(在演员上点击右键选择castmember script编辑)
我们会发现parentscript和moviescipt是不能被拖拽到剪辑室的
----------------------------------------------------------------
--因为castscript(演员脚本)能被behaviorscript(行为脚本)完全代替,且不灵活,所以在lingo编程中不大使用(不知macromedia的出发点是什么) ,我们只需考虑moviescipt、behaviorscript和parentscript
-----------------------------------------------------------------
那么写LINGO语句时到底写在何种script中才合理?这里面有些什么样的实用的原则?
首先只要是规范lingo语句写在任何地方都不会报错的
但是我认为macromedia还是希望大家按一定的规则编写lingo
取决于lingo写法的规则,在于他何时起作用
这就必须了解消息的类型和他的接收顺序
什么是消息:消息就是事件发出的信号(比如mousedown,exitframe...)
消息的分类:简单分就是系统触发形和用户触发型(找不到有关资料,大该是这样吧)
消息的接收顺序:(依次由上到下接收)
角色脚本spritescript
演员脚本(这个可以不考虑)
帧脚本framecript
电影脚本
--父脚本是靠lingo触发的
-----------------------------------------------
考虑一下个脚本的特性,我们会知道这是一种必然(只有这样才能保证程序正常运行)
--好恐怖,我看了n本书上都没有清楚的描述
--未完代续

编辑历史:[这消息被54zq编辑过(编辑时间2001-03-23 23:23:35)]
[这消息被54zq编辑过(编辑时间2001-03-23 23:31:48)]


liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#102001/3/23 22:45:12
54zq !我知该说什么感谢的话!你真是个良师!不厌其烦,我好感动!等你的下回分解!



liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#112001/3/23 23:05:06
又有一个问题,在D8中使用过渡方式:“DM XTREME TRANSITION.....”中的DMXT ROLL DOWN 过渡时就出现非法操作,这究竞是为什么?



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#122001/3/23 23:36:04
系统或xtras本身的问题,肯定有好用的版本



liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#132001/3/25 9:23:45
54zq: 看了你的解答,胜读n本书!你怎么不写本书呀!?



liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#142001/3/27 20:21:13
各位大虾:
我又遇到一个问题:我用FLASH做的SWF导入D8后就删除了源文件上(FLA和SWF)现在我又需要
修改CAST中的SWF,怎么办,用办法将D8中的SWF文件导出来吗?(向AW中那样)请大家指“道”!
谢 ̄ ̄ ̄!



liping2

职务:普通成员
等级:1
金币:0.0
发贴:25
#152001/3/27 20:26:09
各位大虾:
我又遇到一个问题:我用FLASH做的SWF导入D8后就删除了源文件上(FLA和SWF)现在我又需要
修改CAST中的SWF,怎么办,用办法将D8中的SWF文件导出来吗?(向AW中那样)请大家指“道”!
谢 ̄ ̄ ̄!