flash怎样取不重复的随机数
Flash常用代码集锦
Flash常用代码集锦Flash常用代码集锦1、用flash做那种弹出的小窗口分两步:给flash中的按钮加入如下action:on(release){getURL("javascript:MM_openBrWindow('newweb.htm','','wid th=600,height=100')");}在HTML页面的...之间加入下面的javascript代码.2、如何使得flash一打开就是全屏?fscommand("fullscreen",true)如何不能使用右键?fscommand("showmenu","false");3、用命令载入一个动画,我需要确定载入动画在画面中的位置,用什么语言来设置?例如载入名为dd.swf的动画,我要确定这个动画的中心位置在(205,250),该怎么设置?在要加载动画的那钟加入loadMovie("dd.swf","a");a._x=205;a._y=250;你得先做一个空的MC起名叫"a",导入时,在右下角也起名为a4、当鼠标经过时动画播放到某处on(rollover){gotoAndPlay(10);}当鼠标按下时动画播放到某处on(release){gotoAndPlay(1);}5、播完动画后自动跳到某网页getURL("siteindex.htm",_self);6、设为首页on(release){getURL("javascript:void(document.links.style.behavior='url( #default#homepage)');voiddocument.links.setHomePage ('/')"," _self","POST");}注意要将网页中的flash的ID号命名为"links"加入收藏夹on(release){getURL("javascript:voidwindow.external.AddFavorite('http:// ','网页');","_self","POST");}7、关于随机数的技巧用来产生6--20之间的5个不重复的随机数:1):首先产生一个随机数,放在数组对象中的第一个位置;2):产生一个新的随机数.3):检查新产生的随机数和所有目前已产生的随机数是否相同,若是相同则返回(2),否则返回(4)4):将新的随机数加入数组对象中下一个数组元素内.5):检查数组对象个数是否已达到5个,若是跳到(6),否则返回(2)6):结束.AS如下:data1=newArray(5);tot=1;data1=[tot-1]=random(20-6+1)+6;do{gen_data=random(20-6+1)+6;reapeat_data=0;for(i=0,i<=tot-1;i++){if(gen_data==datareapeat_data=1;break;}}if(reapeat_data==0){tot++data[tot-1]=reapeat_data;}}while(tot<5);trace(data1);8、如何使得flash一打开就是全屏的这里说的方法只是用于flashPlayer(fp)9、如何禁止右键菜单fscommand的方法还是只能适用于fp,在网页中使用还是必须添加额外的参数或者用最简单的一句as,在fp和网页中均适用:Stage.showMenu=false;10、载入动画的问题loadMovie("dd.swf",a);//这里没有引号~11、播完动画后自动跳到某网页getURL("siteindex.htm","_self");//这里有引号滴~。
flash指令
- setRGB 设置颜色值的RGB分量(参数为0xRRGGBB十六进制)
- setTransform 设置颜色值的转换量(参数为 cxform 型) [不太清楚]
+ Date 时间和日期对象
- getDate 获取当前日期(本月的几号)
- getDay 获取今天是星期几(0-Sunday,1-Monday...)
- break 跳出循环
- call 调用指定帧(一般喊有某个特定函数)
- comment 注释
- continue 继续循环
- delete 删除一个对象(Object)中的变量
- do while do while循环
- duplicateMovieClip 复制MC
- _focusrect 高亮按钮或者某个当前区域的显示与否(True显示/Flase不显示)
- _framesloaded 已载入的影帧数
- _height MC的高度
- _highquality 画质的高低(True高画质/False低画质)
- _name MC的实例名
- _quality 当前画质(字符串值) LOW,MEDIUM,HIGH,BEST
- getFullYear 获取当前年份(四位数字)
- getHours 获取当前小时数(24小时制,0-23)
- getMilliseconds 获取当前毫秒数
- getMinutes 获取当前分钟数
- getMonth 获取当前月份(注意从0开始:0-Jan,1-Feb...)
- trace 跟踪调试
- unloadMovie 卸载MC
flash随机数
用flash脚本语言做,场景中放一个按钮和一个动态文本,变量名为a,效果为:点1下按钮,产生一个1-10的随机数字,不重复,将这个数字由动态文本出示,10个数字都出现过后停止,(也就是点击10次按钮后无效),var numArr:Array = [1,2,3,4,5,6,7,8,9,10];function getNum(){if(numArr.length<=0){return -1;}return numArr.splice(Math.floor(Math.random()*numArr.length),1)[0]; }上以代码,每次想要得到一个1-10之间的数字时就调用一个getNum();其返回值就是了。
当返回值为-1时,则说明产生了10个数字了,此时将按钮的enabled 设置成false即可。
由于考虑as2.0与as3.0的问题,代码写成as2.0和as3.0都适用的了var numArr:Array = [1,2,3,4,5,6,7,8,9,10];function getNum(){if(numArr.length<=0){return -1;}return numArr.splice(Math.floor(Math.random()*numArr.length),1)[0];}button.onRelease = function(){var num = getNum();if(num<0){button.enabled = false;return;}a = num;}以上代码复制至帧即可其他回答共1条var pressDown=true//btn是按钮事例名,学习群66982752btn.onRelease=function(){if(pressDown){//停止脚本}else{//播放}pressDown=!pressDown}random 写不重复随机数的方法目的:一个类似洗牌的操作,即随机产生54个不重复的数原理:地上有一排砖,共54块,每块上都按顺序标着号码,1,2,3,4,5,6,7.。
Flash常用的动作命令
Flash常用的动作命令一.Flash中的常用命令1、在当前帧停止播放on(release){stop();}2、从当前帧开始播放on(release){play();}3、跳到第10 帧,并且从第10 帧开始播放on(release){gotoAndPlay(10);}4、跳到第20 帧,并且停止在该帧on(release){gotoAndStop(20);}5、跳到下一个场景,并且继续播放on(release){nextScene();play();}6、跳到上一个场景,并且继续播放on(release){prevScene();paly();}7、条到指定的某个场景,并且开始播放on(release){gotoAndPlay("场景名",1);}8、播放器窗口全屏显示on(release){fscommand("fullscreen", true);}9、取消播放器窗口的全屏on(release){fscommand("fullscreen", false);}10、播放的画面,随播放器窗口大小的,改变而改变on(release){fscommand("allowscale", true);}11、播放的画面,不论播放器窗口有多大,都保持原尺寸不变on(release){fscommand("allowscale", false);}12、打开一个网页,如果该“网页”和“flash动画”在同一个文件夹里on(release){getURL("");}13、打开一个网页,如果该“网页”是在网络上的其他站点里on(release){getURL();}14、跳转帧(按纽动作,释放跳转)on (release) {gotoAndPlay(1);}15、播放on(release){play();}16、停止on(release){stop();}17、跳到第N帧开始播放on(release){gotoAndplay(N);}18.跳到第N帧停止on(release){gotoAndstop(N);}二.Flash中关于声音的常用命令1.new Sound()//创建一个新的声音对象;2.mysound.attachSound()//加载库里的声音3.mysound.start()//播放声音;4.mysound.getVolume()//读取声音的音量5.mysound.setVolume()//设置音量6.mysound.getPan()//读取声音的平衡值7.mysound.setPan()//设置声音的平衡值8.mysound.position//声音播放的当前位置9.mysound.duration//声音的总长度;FLASH动作脚本代码集锦1 、简单loading 代码:方法1 、使用载入字节数判断b=getBytesTotal();// 获取总的字节数a=getBytesLoaded();// 已经下载的字节数onEnterFrame=function(){// 进入帧时, 进行判断if (a == b) {// 如果载入的字节数等于总的字节数delete this.onEnterFrame// 删除进入帧gotoAndPlay("frame");// 转入到你要播放的帧] else {// 否则a=getBytesLoaded();// 已经下载的字节数percent=int(a/b*100)+"%";// 计算已经下载的百分比]}把上面方法放入第一帧就可以了方法2 、使用载入的帧数判断_用Action 语法地if frame. is loaded 来实现, 新建一层,这层专门放Action,第一帧,ifFrameLoaded (" 场景", frame) {// 假如场景中地祯数已经载入goto and play() // 跳至并播放某某祯( 自己设定)}第二帧,O*Np@Qgoto and play(" 场景1", 1)// 跳至并播放第一祯循环再加上一个load 地MC 循环播放在这两帧的中间,就OK 了。
flash数字流
黑客帝国数字流作为初次编写Flash程序的闪客,是不是很想了解Flash动画程序到底是怎么制作出来的?制作过程中要经过多少主要步骤?其中使用了哪些主要工具和面板?本节就通过一个具体ActionScript程序范例的制作过程,来介绍初学者迫切想知道的这些问题。
本例是一个数字流的动画效果,它是通过动作脚本随机控制数字的数量、缩放度和透明度实现的,这样做出来的数字流动效果逼真。
本例运行时,随机变化的数字从天而降,形成强大的视觉冲击,如图1.14所示。
图1.14数字流动效果1.3.1制作思路制作本例的设计思路如下。
1.取随机的数字利用随机函数random()获取0~9的随机数字,显示在动态文本中。
为了让随机函数不断执行,至少加入两帧进行循环。
2、数字的排列利用复制函数复制一定数目的数字,然后设置数字的y坐标,让这些数字纵向等距排列。
并设置这些数字的透明度从上到下一次减少。
3、数字的运动运动的起点从场景的上边缘开始,沿直线运动到场景的下边缘,通过数字的y坐标的递减就能实现直线运动。
4、实现数字流再一次利用复制函数不断地复制数字,并让它们的初始x坐标在场景的范围内取随机值。
1.3.2制作过程(1)打开Flash,选择“文件”|“新建”命令,在弹出的“新建文档”对话框中把背景颜色设为黑色,其他参数的设置如图1.15所示。
(2)单击工具栏中的“文本工具”按钮,打开“属性”面板,在其中的“文本类型”下拉列表框中选择“动态文本”选项,如图1.16所示。
图1.15设置文档的属性图1.16选择“动态文本”的类型(3)在场景中建立一个动态文本对象,字体、颜色等默认。
在“属性”面板中把实例名设为num,如图1.17所示。
图1.17设置“动态文本的实例名(4)选中场景中的动态文本对象,选择“修改”|“转换为元件”对话框,在“类型”选项区域中选中“影片剪辑”单选按钮,如图1.18所示。
单击“确定按钮,转换为影片剪辑元件。
1.18转换为元件对话框(5)双击场景的影片剪辑实例,进入元件的编辑状态,新建一层,单击此图层的第一帧,打开“动作”面板,在“动作”面板输入下列代码:num.text=random(10);//动态文本显示随机的数字,范围0—9分别右击两个图层的第2帧,插入一帧,让其循环播放,图层结构如图1.19所示。
FLASH常用函数命令用法
Lingo 代码。如果该消息为字符串或事件,则必须编写 Lingo 代码以便从 fscommand 动作 接收该消息,并在
command 和 parameters 参数中传递任意两个参数。这些参数可以是字符串或表达式,在 “捕捉”或处理
fscommand 动作的 JavaScript 函数中使用这些参数。 在 Web 浏览器中,fscommand 动作在包含 Flash 影片的 HTML 页中调用 JavaScript 函数
moviename_DoFScommand。moviename 是 Flash Player 影片的名称,该名称由 EMBED 标签 的 NAME 属性指定,或
由 OBJECT 标签的 ID 属性指定。如果为 Flash Player 影片分配名称 myMovie,则调用的 JavaScript 函数为
(Flash Support Center)。 示例 用法 1:在下面的示例中,fscommand 动作设置 Flash Player,以便在释放按钮时,将影 片缩放到整个显示器屏幕大小。 on(release){ fscommand(\"fullscreen\", true); } 用法 2:下面的示例使用应用到 Flash 中按钮的 fscommand 动作打开 HTML 页中的 JavaScript 消息框。消息本
Director 中执行动作。有关更多信息,请访问“Director 支持中心”(Director Support Center)。 用法 4:在 Visual Basic、Visual C++ 和可承载 ActiveX 控件的其他程序中,fscommand 利用可在环境的编程
【免费下载】Flash如何使用随机数字函数
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
产生不重复随机数方法
产生不重复随机数方法1.使用数组一种简单的方法是使用数组来存储已经生成的随机数。
首先,创建一个大小为n的数组,其中n是要生成的随机数的数量。
然后,使用一个循环从1到n生成随机数,并将其存储在数组中。
在生成每个随机数之前,检查它是否已经存在于数组中。
如果是,则重新生成另一个随机数,直到找到一个不重复的随机数为止。
这种方法的优点是简单易懂,但是当需要生成的随机数数量较大时,性能可能会较差。
2.使用哈希表哈希表是另一种常见的方法来生成不重复的随机数。
哈希表是一种数据结构,可以在O(1)的时间复杂度内查找和插入元素。
首先,创建一个空的哈希表。
然后,使用一个循环从1到n生成随机数,并将其插入到哈希表中。
在插入之前,检查随机数是否已经存在于哈希表中。
如果是,则重新生成另一个随机数,直到找到一个不重复的随机数为止。
这种方法的优点是性能较好,但是需要额外的存储空间来存储哈希表。
3. Fisher–Yates洗牌算法Fisher–Yates洗牌算法是一种通用的随机排列算法。
它通过交换数组中的元素来生成不重复的随机数。
首先,创建一个长度为n的数组,并将数字从1到n存储在数组中。
然后,从最后一个元素开始,遍历整个数组。
对于每个元素,生成一个在当前元素之前的随机索引,并交换当前元素与随机索引处的元素。
这样,每个元素都有机会出现在第i个位置,其中i从1到n。
在每次交换之后,缩小随机数生成的范围,以避免重复生成相同的索引。
这种方法的优点是效率高,且不需要额外的存储空间。
4.使用加密算法生成随机数加密算法是一种非常安全的方法来生成随机数。
其中一个常见的加密算法是SHA-256算法。
通过使用一些种子值作为输入,并对其进行SHA-256加密,可以生成一个唯一的随机数。
这种方法的优点是生成的随机数具有较高的安全性和不可预测性,但是在一些情况下,性能可能较低。
如何生成没有重复的随机数
如何生成没有重复的随机数我们的第一次大Project要求大家生成学生信息。
但是学生信息是以学号作为主键的,主键是不允许重复的。
那么我们应该如何生成不重复的随机数呢。
问这个问题的同学很多。
有的问是否可以把随机数的范围开的很大很大以避免重复。
其实这样做也是徒劳的。
随机数的产生是有一定概率的,也就是说总会存在一定的可能性使得产生的随机学号存在重复。
我们如果每产生一个随机数就去判断一下是否已经存在多就要牺牲掉很多时间。
那么我们只能用空间换回宝贵的时间了。
以下给一个解决的办法,也许不是最好的,但却是可行的。
假设我们要产生5000个随机学号到文件,那么我们不妨开辟一个大小为5000的数组(牺牲很多空间),bool a [5000]。
初始化使得数组元素初值都为false。
然后不断产生随机数,用这个随机数作为数组的下标。
例如产生的随机数是50,那么我们就看看a[50]的值,如果为false, 就证明还没有产生过这个随机数。
我们这时就进行赋值a[50] = true, 同时保留50这个随机数作为学号。
如果a[50] = true,证明50是已经存在的学号了。
那么我们就舍弃这一次产生的50来避免重复。
产生不重复随机数方法
产生不重复随机数方法1.使用集合来存储已生成的随机数:-首先,创建一个空集合来存储已生成的随机数。
-然后,使用随机数生成器生成一个随机数。
-检查随机数是否已存在于集合中,如果不存在,则将其添加到集合中,并继续生成下一个随机数。
-如果随机数已存在于集合中,则重新生成一个随机数。
-当集合的大小达到预期的随机数数量时,停止生成随机数。
-最后,将集合中的随机数按需要转换为列表或数组。
此方法的优点是简单易懂,且可以保证生成的随机数不重复。
但是当需要生成大量的随机数时,集合的大小可能会很大,这会占用大量的内存空间。
2.使用洗牌算法:-首先,创建一个包含所有可能值的列表或数组。
-使用洗牌算法随机打乱列表或数组中的元素位置。
-取出需要的数量的随机数,按需要转换为列表或数组。
洗牌算法是一种高效的生成不重复随机数的方法,它通过随机交换元素位置来保证生成的随机数不重复。
这种方法不需要额外的空间来存储已生成的随机数,因此适用于生成大量的随机数。
3. 使用Fisher-Yates算法:-首先,创建一个包含所有可能值的数组。
-随机选择数组中的一个元素。
-将选中的元素与数组的最后一个元素交换位置。
-排除最后一个元素,即将数组的大小减小1-在剩余的元素中重复上述步骤,直到生成所需数量的随机数。
Fisher-Yates算法是一种经典的洗牌算法,它通过交换元素位置来生成不重复的随机数。
该算法不仅可以生成不重复的随机数,还可以保证每个元素被选中的概率相等,因此非常适用于需要随机性的应用场景。
总结起来,产生不重复的随机数方法有很多种,例如使用集合、洗牌算法或Fisher-Yates算法等。
选择合适的方法取决于生成随机数的数量和应用的要求。
无论使用哪种方法,都需要保证生成的随机数具有均匀分布和不重复的特性,以满足随机数的要求。
生成不重复的随机数的三种方法
⽣成不重复的随机数的三种⽅法下⾯我以⽣成1-10之间的10个不重复的随机数为例介绍⽣成不重复的随机数的三种⽅法:1,通过while循环来实现通过while循环不停的⽣成随机数,直到⽣成⼀个不重复的为⽌,这种⽅法⽐较容易想到,但是效率也⽐较低下,实例代码如下:static void Main(string[] args){int[] result = new int[10];int tmp = -1;Random random = new Random();bool repeat = false;for (int i = 0; i < 10; i++){repeat = true;while (repeat){repeat = false;tmp = random.Next(1, 11);for (int j = 0; j < i; j++){if (tmp == result[j]){repeat = true;break;}}}result[i] = tmp;}for (int i = 0; i < 10; i++)Console.WriteLine(result[i].ToString());}2,通过for循环来实现⽅法1使⽤了多处循环嵌套,效率⼗分低下,所以我应⽤⼀定的技巧来减少循环嵌套,来达到提⾼程序效率的⽬的。
主要思路是如果检测到重复,就把循环变量减1,这样来重新进⾏⼀次循环,重新⽣成⼀个随机数,直到⽣成⼀个不重复的随机数为⽌,实例代码如下:static void Main(string[] args){int[] result = new int[10];int tmp = -1;Random random = new Random();bool repeat = false;for (int i = 0; i < 10; i++){repeat = false;tmp = random.Next(1, 11);for (int j = 0; j < i; j++){if (tmp == result[j]){repeat = true;break;}}if (!repeat){result[i] = tmp;}else{i = i - 1;//循环变量-1}}for (int i = 0; i < 10; i++)Console.WriteLine(result[i].ToString());}这个⽅法减少了⼀层循环嵌套,效率上有⼀定的改善!3,通过随机排序来实现这种⽅法彻底的颠覆了⽅法1和2的基本思路,先初始化⼀个包含数字1-10的数组,然后每次循环取⼀个随机位置,将这个位置的元素和最后⼀个位置的元素交换!实例代码如下:static void Main(string[] args){int[] result = new int[10];for (int i = 0; i < 10; i++)result[i] = i + 1;for (int j = 9; j > 0; j--){Random r = new Random();int index = r.Next(0, j);int temp = result[index];result[index] = result[j];result[j] = temp;}for (int i = 0; i < 10; i++)Console.WriteLine(result[i].ToString());}这种⽅法消除了循环嵌套,效率上获得了进⼀步的改善,但是也有⼀定的限制,如果要⽣成5个1-10之间的随机数,那这种打乱顺序的⽅法就⽆法使⽤了!总结:⽅法1效率⽐较低下,⼀般不推荐使⽤!⽅法2⽐较通⽤,效率⾼于⽅法1,但是效率低于⽅法3⽅法3虽然效率⽐较⾼,但是只能应⽤与特定的情况下!请⼤家多多指教啊!。
flash as3.0 常用代码
注意要将网页中的flash的ID号命名为"links"
加入收藏夹
on (release) {
getURL("BLOCKED SCRIPTvoid window.external.AddFavorite("","网页");", "_self", "POST");
ball.x=centerX+Math.cos(angle)*radius;
ball.y=centerY+Math.sin(angle)*radius;
angle+=speed;
}
椭圆旋转:
public function onEnterFrame(event:Event):void {
ball.x=centerX+Math.cos(angle)*radiusX;
角的正切值 = 对边 / 邻边
角度制与弧度制的相互转换:
弧度 = 角度 * Math.PI / 180
角度 = 弧度 * 180 / Math.PI
计算两点间距离:
dx = x2 – x1;
dy = y2 – y1;
dist = Math.sqrt(dx*dx + dy*dy);
缓动公式:
sprite.x += (targetX - sprite.x) * easing;//easing为缓动系数变量
}
// fantastic ! //
var bar:ListCollectionView = new ListCollectionView( ListCollectionView( ac ).list );
flash编程常用技巧
1.如何全屏播放fscommand("fullscreen", true);2.如何屏蔽鼠标右键,注意第一种方法在flash调试的时候无效(1)fscommand("showmenu", false);(2)Stage.showMenu = false;(3)运用ContextMenu类的hideBuiltInItems方法.它可以设定屏蔽右键的同时,还允许设置,显示右键菜单的其中几个内置菜单.如下var mymenu:ContextMenu = new ContextMenu();mymenu.hideBuiltInItems();mymenu.builtInItems.print = true;this.menu = mymenu;3.自定义右键菜单//定义鼠标右键对象var myContextMenu:ContextMenu = new ContextMenu();//隐藏右键内置选项myContextMenu.hideBuiltInItems();//创建一个自定义选项clingingboy = new ContextMenuItem("关于Clingingboy", boy);//添加自定义选项myContextMenu.customItems.push(clingingboy);//定义自定义选项函数事件function boy() {getURL("", "_blank");}//指定ContextMenu与主场景关联_root.menu = myContextMenu;4.声明变量和对象类型的技巧(1)使用var关键字,然后指定类型,这是比较严格的//声明变量类型var i:Number = 0;//声明对象类型var mydate:Date;(2)使用脚本编译器可以识别的名称如把MC的实例名称取名为test_mc,动态文本实例名称取名为test_txt,这样的取名的好处在编译器里会出现代码提示5.动态文本变量使用技巧有时候需要把一个动态文本放在MC里面,比如放在test_mc里面,动态文本变量取名为test_txt,那么给在主场景上给变量赋值就是test_mc.test_txt=".....",这样比较麻烦,而且有时候需要把变量名跟别的变量同步,可以把这样设置变量,_root.test_txt,给变量赋值就不需要加MC了,可以直接赋值.而且允许多个动态文本使用同一个变量名称.主要是弄清楚级别的关系6.层次的关系_root 表示根,主场景的意思,比如主场景有个test_mc,给MC编写代码的时候可以写成_root.test_mc._x=100效果跟test_mc._x=100是一样的_parent 对父级对象的引用,比如主场景有个test1_mc和test2_mc,进入test2_mc,在第一帧写_parent.test1_mc._x=100效果跟在主场景上写test1_mc._x=100是一样的.this 引用对象或影片剪辑实例7.编写按钮事件的方法(影片剪辑同理)(1)在按钮的帧上写(不推荐)on (release) {trace("test");}(2)写在主场景的第一帧上.都写在第一帧的话,以后找代码也方便.test_btn.onRelease = function() {trace("test");};8.循环调用事件处理函数(根据帧频),通俗点的意思就是不停的做某件事情.test_mc.onEnterFrame = function() {this._x += 5;};/*onEnterFrame=function(){test_mc._x+=5}*/9.使循环调用事件处理函更加的流畅((可不根据帧频)(1)使用setInterval()函数(2)使用updateAfterEvent 函数10.使用注释语句注释单行"//"注释多行"/*....*/"11.载入外部文件loadMovie("xxx.jpg",test_mc)loadMovieNum("xxx.jpg",10)第一种载入到MC中,主要控制MC属性第二种注意控制深度12.控制载入文件的属性如果MC为空MC的话,只能控制其_x,_y,_alpha等属性,而不能控制其_width等属性,所以需要设置_width等属性,可以在MC里面画一个矩形,就是说,必须不能为空MC,而且最好不得在场景上手动控制MC属性,不然会没有效果.一般MC默认的注册点为左上角,如不需要注册点的设置的话,可以直接载入MC中//载入到影片剪辑中loadMovie("/uploads/200601/17_233507_snap1.jpg", test_mc); test_mc._x = 0;test_mc._y = 0;test_mc._alpha = 50;有时候需要控制注册点,如控制test_mc很难控制,有一个技巧,就是在test_mc里创建一个MC,将外部文件载入到test_mc内部的MC里去.这样就和容易的控制注册点了.因为这个有时候比较重要,特别是定位.很多因为主册点的原因.有兴趣的可以下载过去测试13.简单的动态创建MC和文本_root.createEmptyMovieClip("test_mc", 1);_root.createTextField("my_txt", 2, 100, 100, 100, 100);14.交换深度myMC1_mc.onRelease = function() {this.swapDepths(myMC2_mc);};myMC2_mc.onRelease = function() {this.swapDepths(myMC1_mc);};15.使用for语句完成重复事件,这个很好用,不管是不是在AS编程里(1)test_mc._visible = 0;for (i=0; i<6; i++) {duplicateMovieClip("test_mc", "test_mc"+i, i);this["test_mc"+i]._x = 100*i+50;}(2)或者在场景上把按钮命名为my_btn1,my_btn2....for (i=0; i<6; i++) {this["my_btn"+i].onRelease = function() {trace("你点击了第"+i+"个按钮");};}16.控制对象属性的方法(比较老的不算)(1)最简单的是直接使用点语法test_mc._x=0(2)使用with语句with (test_mc) {_x = 0;}}(3)使用中括号this["test_mc"]._x = 400;(4)使用eval函数test_mc._visible = 0;for (i=0; i<6; i++) {duplicateMovieClip("test_mc", "test_mc"+i, i);test = eval("test_mc"+i);test._x = 100*i+50;}17.熟悉脚本编译器的语法检查,自动套用格式,显示代码提示,有事没事就多点点这三个按钮18.给flash加物理效果(1)不需要你知道什么知识,直接套用Tween类,其他效果可以去看专门讲解它的文章test_mc.onRollOver = function() {new mx.transitions.Tween(this, "_xscale", mx.transitions.easing.Elastic.easeOut, this._xscale, 180, 30);new mx.transitions.Tween(this, "_yscale", mx.transitions.easing.Elastic.easeOut, this._yscale, 180, 30);};test_mc.onRollOut = function() {new mx.transitions.Tween(this, "_xscale", mx.transitions.easing.Elastic.easeOut, this._xscale, 100, 30);new mx.transitions.Tween(this, "_yscale", mx.transitions.easing.Elastic.easeOut, this._yscale, 100, 30);};(2)物理知识的简单运用一,匀速运动test_mc.onEnterFrame = function() {test_mc._x += 5;if (test_mc._x>400) {test_mc._x = 0;}};二.加速运动i = 0.5;speed = 0;test_mc.onEnterFrame = function() {speed += i;test_mc._x += speed;if (test_mc._x>400) {test_mc._x = 0;}if (speed>50) {speed = 0;}};三.简谐运动test_mc._x = 100;speed = 0;test_mc.onEnterFrame = function() {speed += (200-test_mc._x)*.05;test_mc._x += speed;};四.摩差运动的缓冲test_mc.onEnterFrame = function() {test_mc._x += (300-test_mc._x)*.08;};五.阻尼运动xr = 100;dir = 1;ang = 0;damp = 1;test_mc._x = 0;test_mc.onEnterFrame = function() {test_mc._x += Math.sin(ang)*xr*dir*damp;damp *= 0.95;ang += 0.5;};一些常用的AS代码,可以温习一下一些常用的AS代码设置首页代码:on (release) {geturl("javascript:document.body.style.behavior=\"url(#default#homepage)\";document.bo dy.sethomepage(\"")", "_self");}加为收藏代码:on (release) {geturl("javascript:window.external.addfavorite(\"\")", "_self"); }判断输入是否为数字的函数:on(release){if(Number(pass)==NaN){//判断输入是否为数字pass="";}检查E-MAIL的函数:function checkemail(email) {var str = new String(email);var arr_email = str.split("@");if ((arr_email.length != 2) || (arr_email[1].indexOf(".")<1)) { return (false);} else {return (true);}}延时函数:function showTime(second, option) {//延时函数this.createEmptyMovieClip("t_mc", 9999);t = getTimer();f = false;if ((getTimer()-t)>(second*1000)) {option();}}function go() {//加入效果jpg2._y = jpg2._y+77;jpg2._alpha = jpg2._alpha-15;}fscommand("fullscreen", "true");createEmptyMovieClip("jpg1", 1);createEmptyMovieClip("jpg2", 2);jpg1.loadMovie("1.jpg");jpg2.loadMovie("2.jpg");i = 0;while (i<=100) {showTime(0.1, go);i = i+20;}FLASH中的保留小数的函int(你的数*10)/10;这样是保留一位乘上100就是两位。
随机提取数字不重复的函数
随机提取数字不重复的函数好的,在 Java 中可以使用`HashSet`集合来存储随机提取的不重复数字。
以下为示例代码:```javaimport java.util.HashSet;import java.util.Random;public class RandomExtract {public static void main(String[] args) {int[] numbers = {18, 29, 19, 362, 23, 45, 67, 234, 90, 45};int count = 4;// 接收并输出int[] randomNumbers = randomExtract(numbers, count);for (int number : randomNumbers) {System.out.print(number + " ");}}public static int[] randomExtract(int[] source, int count) {// 创建 HashSet 存储不重复随机数HashSet<Integer> set = new HashSet<>();Random random = new Random();while (set.size() < count) {// 生成索引int index = random.nextInt(source.length);// 确保索引有效且未被添加过if (index >= 0 && index < source.length && !set.contains(index)) {set.add(index);}}int[] result = new int[set.size()];int i = 0;for (int index : set) {result[i++] = source[index];}return result;}}```上述代码的具体解释如下:- 在`main`方法中,定义了一个整型数组`numbers`,其中包含了一些数字。
FLASH随机抽奖
FLASH随机抽取用简单的FLASH随机抽取放在PPT上用来抽奖,这经常可以应用的。
这里制作用的软件是FLASH8,让我来教没用过FLASH的人怎么制作。
1.首先去下载一个绿色版的FLASH8,58.19 MB 绿盟有得下:/soft/softdown.asp?softid=282392.下载安装完后,打开FLASH8,新建FLASH文档。
3.菜单栏 ---插入---新建元件4.选择---影片剪辑----点击确定。
5.点击一下工具栏的“文本工具”6.然后在影片剪辑中画个文本框(或者点一下就出来了)。
7.在文本框随便输入三个数字(如果两位数就输出2个数字)。
8.底部有几个选项,文本类型选择:动态文本;实例名称输入:a(随便命名,如果与软件有冲突会有提示的)字体太小: 70;粗体;居中对齐。
9.菜单栏---窗口---对齐10.点击一下工具栏的“选择工具”11.回到舞台选中文本框12.最右面选择对齐面板:相对于舞台:选中;对齐:水平中齐;分布:垂直居中分布。
13.时间轴面板---选择插入图层---新加一个图层2.14.单击选择图层2第一帧15.菜单栏---窗口----动作----单击打开“动作面板”16.在动作面板输入代码:a.text = random(500); 然后最小化动作面板。
17.回到时间轴面板,选择图层1第一帧,右击,插入帧。
18.时间轴面板---单击场景--回到主场景。
19.右边有个库面板,单击将影片剪辑“元件1”按住,拖进舞台,并调整好位置。
20.菜单栏---窗口---公用库---按钮---打开按钮面板。
21.在按钮面板中单击选中一个按钮,按住不放,将它拖到舞台中;再重复操作,再拖一个不同颜色的按钮;然后关闭按钮面板。
22.双击按钮---进入按钮组件23.再双击按钮----重命名按钮为“play”。
24.重复22、23操作将别一个按钮命名为“stop”.25.工具栏---单击选中“选择工具”---单击选中按钮“play”---最大化“动作面板”。
actions解析
Flash源码精选—科学—四年级下源码解析目录1.碰撞检测;2.根据旋转角度判断3.电影的复制4.产生随机数不重复5.文本触发事件6. 显示与隐藏7. 判断当前帧位置8. 函数的循环执行解析1、碰撞检测主要作用:当两个电影相互碰撞的时候产生一个动作核心命令:hitTest、elseif代码解析://判断电影和电影之间是否碰撞if (daoxian2.fyq.hitTest(daoxian1.fyq) == true) {//电影跳转到第二帧deng1.gotoandstop(2);//当if判断语句中的逻辑值为false时} else {//电影跳转到第一帧deng1.gotoandstop(1);}应用示例:课件片段《测试小电珠》2.根据旋转角度判断主要作用:当物体角度发生改变时执行代码核心命令:_rotation、if代码解析://当电影角度发生改变时if (s1.zd._rotation == -2) {//跳转到电影的第二帧lamp.ld.gotoandstop(24);//当if 判断语句中的逻辑值为false时} else {//电影跳转到第一帧lamp.ld.gotoandstop(1);}应用示例:课件片段《串联的电池》3. 电影的复制主要作用:复制电影并定位。
核心命令:duplicateMovieClip代码解析:for (i=2; i<=100; i++) {//for循环hf1.duplicateMovieClip("hf"+i, i);//复制电影(新名称,深度)this["hf"+i]._x = random(301)-150;//设定x轴位置this["hf"+i]._y = random(11)-3+180;//设定y轴位置this["hf"+i].drg = false;//赋值}应用示例:课件片段《柱头的粘性》4. 产生随机数不重复主要作用:产生随机一个数不重复。
flash怎么将数字转换为字符串并提取数位?
flash怎么将数字转换为字符串并提取数位?flash中多位数字想要提取某⼀个位数字,该怎么提取呢?我们可以使⽤字符串提取,下⾯我们就来看看详细的教程。
Adobe Flash CS6(FI cs6) 官⽅简体中⽂正式版
类型:动画制作
⼤⼩:1.24GB
语⾔:简体中⽂
时间:2015-12-10
查看详情
⼀、新建⽂件
1、双击桌⾯上的Flash图标,打开软件。
2、选择“ActionScript3.0”选项,新建⼀个空⽩⽂档。
3、在第⼀帧上右击,选择“动作”。
⼆、使⽤字符串提取数位
1、⾸先,在“动作”⾯板定义要操作的数字,如下图所⽰。
2、接着,⽤toString()⽅法将数字转换为字符串。
在“动作”⾯板输⼊以下代码。
3、⽤CharAt()命令获取第⼀个数位的字符,并⽤parseInt()命令转化为数值。
“动作”⾯板的代码如下图所⽰。
4、⽤上⼀步的⽅法,获取第2、3、4数位的字符,并转化为数值。
“动作”⾯板上的代码如下图所⽰。
5、最后,输出各数位的值。
代码如下图所⽰。
6、测试程序,得到如下结果。
以上就是flash利⽤字符串实现取数位的教程,希望⼤家喜欢,请继续关注。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//计算源数组的元素数目
tempLen = temp_array.length;
//从源数组中随机取一个索引数字出来
index = Math.floor(Math.random()*tempLen);
//把这个索引的元素提出来放到新数组中
function randNum(source_array:Array, newLen:Number) {
var temp_array:Array = source_array;
var new_array:Array = new Array();
var Num:Number = newLen;
for (var i = 0; i<my_array.length; i++) {
mytemp[i] = my_array[i];
}
new_txt.text = randNum(mytemp, 5);
};
//========================================================定义随机函数
flash怎样取不重复的随机数
假如,你需要从全班同学中随机选择n个不重复的同学出来,怎么选?这就涉及到取不重复随机数的问题。
两种常用的方法:
1、用数组的splice属性,将选过的元素从源数组中删掉,这样就能保证取出去的不会重复。
my_str = "苏妙玲,洪辰,喻佳丽,刘忻,王艺洁,段林希,金银玲,陆翊,DL组合,李斯丹妮,付梦妮,孙昕欣,杨洋";
my_array = my_str.split(",");
mytemp = [];
//显示源数组
source_txt.text = my_array;
//=================================按钮控制选择
temp_array.splice(index, 1);
}
//现在新数组里就是不重复的元素了,把新数组返回
return new_array;
}
2、通过判断取到的元素是否重复,不重复才取。
i = 0;
total = 32;
rand_arry = new Array();
source_array.push(i+1);
}
for (j=0; j<newLen; j++) {
index = Math.floor(Math.random()*source_array.length);
trace("随机取得的一个索引数是"+index);
new_array[j] = source_array[index];
var source_array:Array = new Array();
var new_array:Array = new Array();
var sourceLen:Number = 30;
var newLen:Number = 10;
for (i=0; i<sourceLen; i++) {
}
if (k) {
i++;
}
} while (i<10);
//参数16,就是指定数值型数组,按照数值型进行比较,升序排列。
web = rand_arry.sort(16);
trace(web);
new_array[j] = temp_array[index];
//元数组都被删完了,显示空值。
if (temp_array[index] == undefined) {
new_array[j] = "";
}
//再把已经提出来的这个元素从元数组中删除,保证下次不会再取到。
_btn.onRelease = function() {
//由于splice是会改变源数组的特性,不断按下按钮执行函数,元数组中的元素就会被删完,这时候就选不到了。
/为了演示每次能选n个的效果,每次让数组重赋值一边。
//不重新赋值也是一种应用。比如你每次选一个,在全部元素被删完以前,每次得到的都是不重复的随机数。在课件里定随机提问对象也是可以用到的。
do {
rand_arry[i] = Math.ceil(Math.random()*32);
k = true;
for (j=0; j<i; j++) {
if (rand_arry[i] == rand_arry[j]) {
k = false;
break;
}
source_array.splice(index, 1);
}
trace("测试一下新数组的内容:"+new_array);
具体应用:
具体应用时,可以把以上代码修改定义成一个数组,方便使用。我用以下代码做一范例:
//===============================定义源数组和临时数组