作者oj113068 (橘子汁)
看板Flash
标题Re: [问题] 随机拨放Movie上的影格
时间Sun Feb 3 21:57:56 2008
※ 引述《Jerrynet (我爱Hot_game板)》之铭言:
: ※ 引述《oj113068 (橘子汁)》之铭言:
: : 档案在此~@ @
: : http://www.datafilehost.com/download.php?file=4f20b2c9
: : 我想要问的是,我想利用乱数的方式让一个物件随拨放他的影格
: : 画面上的物件实体名称做叫 a
: : 内共有五格,目前每一格先用数字作测试~@ @ 分别是12345
: : 并在影片内的每一格加上stop~
: : 因此fla档的第一格我是写
: : var p = 0;
: : onEnterFrame = function () {
: : p = random(5);
: : };
: : if (p == 1) {
: : _a.play(1);
: : }
: : if (p == 2) {
: : _a.play(2);
: : }
: : if (p == 3) {
: : _a.play(3);
: : }
: : if (p == 4) {
: : _a.play(4);
: : }
: : if (p == 5) {
: : _a.play(5);
: : }
: : 但是拨放出来以後没有反应
: : 想请问我的写法哪里有错误~@ @
: : 我以为是层级的问题,不过加上root也没反映
: : 不好意思,我是胡乱自学的,如果有什麽错的很爆笑的地方请见谅Orz
: : 先感谢回答<(_ _)>
: 首先:
: if判断式请写在function里面,这样才能每次都判断一次
: 其次
: play()
: 是播放
: gotoAndPlay(影格编号)
: 才是跳到某格播放(我建议你用gotoAndStop)
: 再来
: 你场景上并没有一个名为 _a 的物件 ,你要命名
: 最後,我觉得你这样写并不好,我改写你的程式
: onEnterFrame = function () {
: _root._a.gotoAndStop(Math.floor(Math.random()*5)+1);
: }
: 就这三行就ok了
: 说明一下:
: 自从flash5之後, random不再建议使用,请改用Math.random
: 但是此函数会传回大於等於0到小於1之间的小数( 即 0<=Math.random()<1 ),所以我乘以五,
: 变成0~5之间(不会有五)
: 再用Math.floor()函数,这是无条件舍去,只剩下整数,最後加1
: 就会产生范围在1~5之间的整数了
: 建议你去买一本ActionScript的入门书来看,不过你用flash8,是ActionScript2
: 现在FlashCS3 已经用ActionScript3了,两者差很多
: 看你要不要升级用CS3,因为以後用AS3语法是主流~
不好意思,遇到一个大问题 囧
就是和2667一样
跳动的太快眼花撩乱了Orz
虽然看了2667的讨论,但是我却吸收不了他的内容Orz
因为他每格都在判断变数,所以即使我改成gotoAndPlay再延长影格也没用~> <"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.6.249
1F:推 Jerrynet:如果不用Timer,2671篇是蛮好的解决方法 02/03 22:30
2F:→ oj113068:所以我是直接加上三行var做调整就可以了吗? 02/04 11:50
3F:推 Jerrynet:不只啊,他不是还有写判断式~ 02/04 12:49
4F:→ oj113068:唔,现在遇到的另外一个问题是,2671篇是决定xy轴 02/04 16:07
5F:→ oj113068:的范围,我要怎麽改成决定时间的长短? 02/04 16:08
6F:→ oj113068:简单的说就是,我有点不知道要怎麽修改2671...(尝试中Orz 02/04 16:09