主题:  我就是没学会怎么做按纽!

xtra_5d

职务:普通成员
等级:1
金币:0.0
发贴:7
注册:2001/1/3 18:53:44
#12001/1/10 14:23:16
我看了5d所有的教程和帖子,就是没看明白,也许我太基础了!:-(



dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
注册:2000/12/7 21:54:20
#22001/1/10 15:05:56
基础不是问题,问题是你自己去不去亲自动手和动脑。
一个按扭,包括:正常,mouseover,mousedown,mouseup四种基本状态:
1、正常状态就不多讲了;
2、mouseover状态:在D中,由mouseenter事件激活,mouseleave还原;(也可用mousewithin)
3、mousedown状态:由mousedown激活,mouseup和mouseupoutside还原或激活mouseup状态;
4、mouseup状态:mouseup和mouseupoutside激活,通常恢复为正常状态。
其中按扭状态替换可用:
sprite(me.spritenum).member=member("membername")
实现,也有人用跳帧实现,本人不认为跳帧方法好。以下为一个典型的按扭行为(member1为正常状态演员)
on mouseenter me
sprit(me.spritnum).member=member("memberover")
end
on mouseleave me
sprit(me.spritnum).member=member("member1")
end
on mousedown me
sprit(me.spritnum).member=member("memberdown")
end
on mouseup me
sprit(me.spritnum).member=member("member1")
go to "wheremarker"
end
on mouseupoutside me
sprit(me.spritnum).member=member("member1")
end
小小菜鸟不才,如有不对或不完整,请各位兄弟指教。万分感谢。



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
注册:2007/4/9 9:48:37
#32001/1/10 22:35:58
在d里作按钮的一点补充
1.我认为直接导入带alpha通道psd(或其他可透明格式),通过color或loc的变换来响应鼠标各种状态是最好不过的了
2.直接导入flash按钮
3.用visible实现



南山东篱摄螂

职务:普通成员
等级:4
金币:10.0
发贴:1840
注册:2000/10/22 10:31:19
#42001/1/10 23:53:27
具体不明在那里?能详细说吗?这样可以针对性地讨论!



xtra_5d

职务:普通成员
等级:1
金币:0.0
发贴:7
注册:2001/1/3 18:53:44
#52001/1/11 8:59:36
我把不同状态两个按扭导入以后,就不知道怎么弄了,dr的工作模式我还不太习惯。
谢谢各位!



dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
注册:2000/12/7 21:54:20
#62001/1/11 9:46:24
如果就是不太习惯就好了,你多用几下,你会发现D是个很好的东西,54zp说的对,我也特别喜欢用flash做的按扭。只是“直接导入带alpha通道psd(或其他可透明格式),通过color或loc的变换来响应鼠标各种状态”方法我不是很了解,可否解释解释怎么做和原理呢!

编辑历史:[这消息被dexn编辑过(编辑时间2001-01-11 09:50:20)]


rainy_5d

职务:普通成员
等级:2
金币:1.0
发贴:225
注册:2000/10/23 19:44:16
#72001/1/11 22:37:32
是的,d的创作模式是很特殊的,以至于以前的很长时间我都搞不清消息的层次问题,不知道何时用何种脚本。关键还是在于动手、动脑。



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
注册:2007/4/9 9:48:37
#82001/1/11 22:42:22
on mousedown
global x
set x=the clickon
set colornow=random(64)
repeat while the mousedown
sprite(x).backcolor=colornow
updateStage
end repeat
end
on mouseup
global x
set x=the clickon
if rollOver(x) then
sprite(x).backcolor=0
else
sprite(x).backcolor=0
updateStage
end if
end
有没有谁看了这段东东特眼熟的

编辑历史:[这消息被54zq编辑过(编辑时间2001-01-11 23:19:57)]


xtra_5d

职务:普通成员
等级:1
金币:0.0
发贴:7
注册:2001/1/3 18:53:44
#92001/1/12 8:58:46
我建议:大家既然都是做多媒体的,为什么不错一些多媒体格式的教程呢>??



dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
注册:2000/12/7 21:54:20
#102001/1/12 9:49:03
感谢54zp兄,大概的原理我已经有了模糊的概念,等会我自己尝试一下,应该会有更深的认识,但小的不才这个语句我怎么看都不明白,
if rollOver(x) then
sprite(x).backcolor=0
else
sprite(x).backcolor=0
updateStage
end if
54zp兄没写错不?
刚才我试了一下,将54zp兄的程序改为以下,发现这样会比较象一个按扭,
on mousedown
global x
set x=the clickon
set colornow=random(64)
repeat while the mousedown
if rollOver(x) then
sprite(x).backcolor=colornow
else
sprite(x).backcolor=0

end if
updateStage
end repeat
end
on mouseup
set x=the clickon
sprite(x).backcolor=0
updateStage
end
改动是把rollover放到repeat while the mousedown 里。

编辑历史:[这消息被dexn编辑过(编辑时间2001-01-12 10:43:34)]
[这消息被dexn编辑过(编辑时间2001-01-12 10:45:35)]


donlee

职务:普通成员
等级:1
金币:1.0
发贴:271
注册:2000/12/8 8:52:18
#112001/1/12 11:36:48
如果是用作sprite行为,还是去掉global x 而在第一行加上property x;若是frame script怕不作为按钮的sprite也成为"按钮"了。



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
注册:2007/4/9 9:48:37
#122001/1/13 2:32:24
sorry,倒真没认真研究过,一下有点蒙,下网后仔细瞧瞧,thks
不过原程序
if rollOver(x) then
sprite(x).backcolor=0
do something--这里交互
else
sprite(x).backcolor=0
updateStage
end if
是为了确保按钮响应后才交互而且交互后按钮需归原状态
donlee兄所言极是,下次一定改

编辑历史:[这消息被54zq编辑过(编辑时间2001-01-13 02:35:06)]
[这消息被54zq编辑过(编辑时间2001-01-13 03:03:10)]


南山东篱摄螂

职务:普通成员
等级:4
金币:10.0
发贴:1840
注册:2000/10/22 10:31:19
#132001/1/13 10:27:07
xtra在上个贴子中说
引用:
我把不同状态两个按扭导入以后,就不知道怎么弄了,dr的工作模式我还不太习惯。
谢谢各位!


导入后还要把它拖到stage中,Dr有时间轴这个概念--与flash差不多。
还有就是DR具有一定的面向对像的能力。