主题:  关于图片随鼠标旋转的问题征答

lxk

职务:普通成员
等级:1
金币:0.0
发贴:45
#12000/12/14 8:04:20
一些用director做的光盘中,有些图片可以随鼠标旋转,鼠标向左移动,它就漫漫向左动;鼠标向右、上、下移动,它就相应地旋转,且随着鼠标移动的快慢旋转速度也不同。还有一个特性:如果鼠标在动后停止了,它将渐渐减速,直到正常旋转。
这和虚拟现实的差不多,有时用到,可以从不同角度观察对象。
现在假设有12张图,分别为a1、a2......a12,是同一物体按照顺时针每隔10度就拍摄的图片,怎样编写程序??(或许用到rotation了)
特此请教各路大虾。



donlee

职务:普通成员
等级:1
金币:1.0
发贴:271
#22000/12/14 8:58:52
“假设有12张图,分别为a1、a2......a12,是同一物体按照顺时针每隔10度就拍摄的图片”
如果是同一张图不同的旋转角度,那就不用12张图了,用ratation就可以了。如果这些图不是源于同一张图,那就只好用替换member等方式来完成了。
sprite(X).member=...
或 sprite(X).member.filename=...
或 sprite(me.spriteNum).member.....
至于鼠标控制sprite的旋转,程序的编写和调试比较复杂,不是三言两语能说清楚的,可以参看《Director7开发使用手册》中三维效果的模拟和Director 8下的\Show Me\sprite_rotation movie 。



jiesun

职务:普通成员
等级:1
金币:1.0
发贴:182
#32000/12/14 12:20:22
show me 中的是dcr,怎么才能看能?



草原战狼

职务:普通成员
等级:1
金币:0.0
发贴:15
#42000/12/14 15:46:53
是啊,DCR如何打开?
另外,如何监测鼠标移动的事件???



我是小马

职务:普通成员
等级:3
金币:17.0
发贴:794
#52000/12/14 19:01:11
用IE打开就行了,不过可能需要安装shockwave插件

检测鼠标移动可以通过检测the mouseloc来实现
jiesun在上个贴子中说
引用:
show me 中的是dcr,怎么才能看能?

编辑历史:[这消息被mzgjingsi编辑过(编辑时间2000-12-14 19:07:48)]


南山东篱摄螂

职务:普通成员
等级:4
金币:10.0
发贴:1840
#62000/12/14 23:13:07
用the mouseV和the mouseH 也可以读取鼠标坐标。



草原战狼

职务:普通成员
等级:1
金币:0.0
发贴:15
#72000/12/15 0:31:11
但是怎么使用mouseloc and mouseV and mouseH.
比如说,我要使图片跟随鼠标来移动,改变鼠标移动的lingo应该放在哪里呢?



土豆

职务:普通成员
等级:1
金币:0.0
发贴:103
#82000/12/15 0:57:32
既可以放在帧脚本通道里,也可以附在精灵上!
如是在帧脚本通道,则要做个循环(go to the frame)
而附在精灵上,则可以用很多种EVENT来触发它!



donlee

职务:普通成员
等级:1
金币:1.0
发贴:271
#92000/12/19 9:22:59
请参考一下d8的library,里面的行为库内有完整的代码,适当修改即可使用.



lxk

职务:普通成员
等级:1
金币:0.0
发贴:45
#102000/12/19 11:34:46
谢谢!!!



dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
#112000/12/19 15:36:37
可以用on exitframe me 读取the mouseloc,再用后帧的减前帧的,根据绝对值大小判断鼠标移动快慢,用该值与rate相关,便可,



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#122000/12/20 1:12:48
在一个区域里用on mousewithin
可用flash画不规折区域



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#132000/12/20 1:12:58
在一个区域里用on mousewithin
可用flash画不规折区域
有请各位高手在探讨一下member转换时的减速
我先去试验一下

编辑历史:[这消息被54zq编辑过(编辑时间2000-12-20 02:36:42)]


D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#142000/12/20 20:57:44
鼠标不动后,检测到球体的转向(up addnum=- down addnum=+ )
鼠标的力度delayration&addnum
repeat while delayration=delayration+num
changemember (addnum,delayration)
end repeat

on changemember addnum,delayration
if voidP(adnum) then
set addnum=1
else
if voidP(delayration) then set delayration=15
end if
set membernum=the castnum of sprite spritenum
starttimer
repeat while the timer delayration=delayration+1
membernum=membernum+addnum
end repeat
set the castnum of sprite spritenum to membernum
end changemember
好像不大对,请各位踊跃指教