zoukankan      html  css  js  c++  java
  • flash random问题

    flash 中random 的问题

    2008-10-16 13:59hanhuifeng1985 | 分类:多媒体软件 | 浏览1140次
    不知道怎么开口 举个例子 高手看看我哪里有问题
    比方我想做一个随即在场景中不断出现小黑点的效果
    先创建一个小黑点图样的MC 把MC拖到“场景1”中在属性里把MC的名称改成123 新建一个图层“场景2”第一帧动作:
    duplicateMovieClip(123,'c',c) setProperty(c,_x,random(500)) setProperty(c,_y,random(400))
    第二帧动作:
    c = c+1; gotoAndPlay(1);
    结果效果是 屏幕上只有2个黑点,一个是场景1中的 固定不变的黑点 一个是随机产生的 黑点 可是我要的效果是 很多黑点 谁能告诉我正确的编写方法
    还有一个问题 我如果想在固定的区域随机产生函数 我可以这样写么
    setProperty(c,_x,random(100-500)) setProperty(c,_y,random(100-400))

    关于FLASH中RANDOM函数的问题谢谢大家指点

    2012-05-07 14:16forestxiao | 分类:多媒体软件 | 浏览151次
    之前有提问过 if (random(10) == 0) { 	gotoAndPlay(7); } else { 	gotoAndPlay(1); } 这个函数,能够随机进行2个前进的函数。 请问,我想制作一个点击一下就会随机跳跃到4个帧之中的随机一个。 随机运行4个帧的任意一个。 谢谢大家
     
     
    2012-05-07 15:31提问者采纳
     
    on (release){ var r:Number = Math.floor(Math.random()()*4)+1; gotoAndPlay(r); }
    就这样。
    追问
    不好意思我是新手 on (release){ var r:Number = Math.floor(Math.random()*4)+1;  gotoAndPlay(r); }
    中4,1还有gotoandplay之后的r分别代表什么意思? 谢谢能详细的指点下啊
    回答
    不用进,最重要是有学到。
    on (release){ var r:Number = Math.floor(Math.random()*4)+1; //创建一个r变数,r等于 近似值(随机数()乘于4)+1; //Math.floor()虽然类似近似值,不过它的功用是把小数点去掉 //Math.random()让系统随机选出一个大于0却小于1的小数点数目字。 //Math.random()*4就是让随机数乘于4,就会得到大于0却小于4之间的随机数。 //由于Math.floor()的关系,比如Math.random()给的随机数是0.213465 乘于4等于0.85386.虽然大过5但是Math.floor()会把它去掉变成0,当然如果r变成0的话系统就会出错,因为没有第0帧,所以要+1.而且刚刚最大的随机数是3.9999999【Math.floor还是一样会把它变成3】,所以+1就成了4了 gotoAndPlay(r); //r就是刚刚创建、并给予1~4之间的随机数,变数的名字。也就是说r储存了刚刚创建的随机数 }
    追问
    那么好比我现在一共有60帧 前10帧都是按钮,用来输入 on (release){ var r:Number = Math.floor(Math.random()*4)+1;  gotoAndPlay(r); } 之后的20到60之间都是每10帧为一个小动画, 我希望在第1帧到10帧的这个按钮按下去就会随机跳跃到 20,30,40,50这4个小动画中的随机一个动画的话。
    我应该具体怎么样写这个函数呢? 谢谢
    回答
    如果前10帧只有一个按钮的话【按钮从第一帧出现到第十帧吗】?
    所以你的跳转页是20,30,40和50嘛。
    所以脚本就加: on (release){ var r:Number = Math.floor(Math.random()*4)+2; //这里的+1变为+2,因为一开始是2开头 //这样随机数出来就是0,1,2,3 答案加2 就是 2,3,4,5了 gotoAndPlay(r);//这里的r乘于10,所以上面的答案乘于10的话,就会随机跳转到20,30,40和50帧了。 }
    追问
    抱歉,但是关键的写法我还是没看懂 on (release){ var r:Number = Math.floor(Math.random()*4)+1;  gotoAndPlay(r*10); } 是这样写嘛?关键的R乘以10的地方的写法对不对?
    回答
    因为你的动画开头都是第20、30、40和50帧对吧?
    所以我们只需要让flash选出2、3、4、5中的一个随机数。
    再将随机数乘于10就能拿到20、30、40和50了。
    就是gotoAndPlay(r*10)转到并且播放“r乘于10的答案”的帧
    提问者评价
    谢谢啊,我弄出来了,可以这样随机运行出来了。感谢您啊。另外能请教您一下别的随机指定吗?
     
     
    2008-10-16 14:10提问者采纳
     
    C的值没有初始化,在第一帧写C=1; 如果想在固定区域,比如你想得到X的值为400到500,Y的值为300到500,可以这样写:x=400+random(100);y=300+random(200) 另外,MC的名称最好不要命名为数字。 还有什么问题?
  • 相关阅读:
    flex>数据绑定、数据列表 小强斋
    上周问题总结与解决方案
    asp.net 实现无限级分类
    发个项目需求大家瞅瞅
    ASP.NET POST模拟登陆
    HttpWebRequest发送数据 post
    asp.net 生成静态页面
    xcode4.1自带SVN配置
    模拟登录
    C#中用HttpWebRequest/HttpWebResponse来发送/接收数据
  • 原文地址:https://www.cnblogs.com/nc-blog/p/3469022.html
Copyright © 2011-2022 走看看