问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请教FLASH AS2.0函数调用的二个疑问

发布网友 发布时间:2022-05-12 05:07

我来回答

3个回答

热心网友 时间:2023-11-18 11:42

哦,你看的是《actionscript 权威指南》这本书,这本书很好,值得好好学习。
function moveBall_1(){
  Ball._x += 10;
  Ball._y += 10;
}
function moveBall_2(){
  Ball._x += 10;
  Ball._y -= 15;
}
问题1:moveBall_1()函数执行的时候,小球是向屏幕右下角方向运动的。moveBall_2()函数执行的时候小球向屏幕右上角运动,x和y轴上不同的增量当然会使得小球运动的距离不同了。如果希望小球向任意方向运动的距离都一样的话,应该使用三角函数值来实现,一会我用函数封装的形式给你例子。
问题2:例子中的movieClip()函数是经过封装后的函数,我们编写自定义函数的时候应该像这样编写。封装后的函数它的灵活性体现在函数可以应用到不同的对象上,而且可以使用不同的参数达到不同的效果,因此函数在重复使用的时候非常方便。第一种函数的写法,只能固定对一个对象进行操作,而封装后的函数可以用参数的形式来指定。
例如,movieClip(Ball1, 10, 10)可以让Ball1向右下角运动,movieClip(Ball2, -20, -20)可以让Ball2向左上角以更双倍的距离移动。我做了一个复制多个小球,并让小球以不同方向等距离(即相同的速度)运动。如果用第一种函数来写moveBall()的话用起来就没有这么方便了。代码如下:

 

//radius是小球每次运动的距离,即小球运动的速度
var radius:Number = 10;
//total是小球的数量
var total:Number = 30;
ball._visible = false;
plicateBall(ball, total);

function plicateBall(obj, num)
{
 for (var i:Number = 1; i <= num; i++)
 {
  plicateMovieClip(obj, "ball" + i, i);
 }
}
this.onEnterFrame = function()
{
 for (var n:Number = 1; n <= total; n++)
 {
  moveBall(this["ball" + n], radius, (n-1) * (360/total) * Math.PI / 180);
 }
 if (ball1._x < 0 || ball1._x > Stage.width)
 {
  plicateBall(ball, total);
 }
};
function moveBall(mc, distance, angle)
{
 mc._x += distance * Math.cos(angle);
 mc._y += distance * Math.sin(angle);
}

热心网友 时间:2023-11-18 11:43

当然第二个函数灵活多了。第二个函数在调用时,不用去修改函数本身,就需要修改参数就能实现效果。而且可以用于多个影片剪辑。而且移动的距离都可以自己改变参数来改变。如果还不明白的话,我举个例子,比如有二个影片剪辑。实例名分别为mc1,mc2如果用第一个函数来实再的话就要写二个函数。分别为
function moveBall1(){
mc1._x+=15
mc1._y-=15
}
function moveBall2(){
mc2._x+=15
mc2._y-=15
}
moveBall1()
moveBall2()
而如果用第二个就方便多了。写法如下:
Function moveClip(theClip,xDist,yDist){
theClip._x+=xDist
theClip._y+=yDist
}
moveClip(mc1,15,-15)
moveClip(mc2,15,-15)
这是二个影片,如果多个影片要实现不同的移动,则更方便。

热心网友 时间:2023-11-18 11:43

编程是要实际做东西的,不是坐而论道的,你做都不做,能看出啥?
第一个问题,你把+和-看成是移动的方向就理解了。这个数值只是移动快慢,跟距离没关系。
第二个问题,灵活不灵活,到底多还是少,你要单独看是看不出来的。就好比洗衣机,你洗一双袜子,当然会说,我看不出用洗衣机比不用有啥好处。
假设要运动的有20个不同的mc,有不同的运动速度,你看看是哪个灵活。
哪里不懂可找我问。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
发摅解释 摅的组词有哪些 摅字能组哪些词 检测电脑配置的软件电脑硬件检测权威软件有哪几个 查看电脑参数的软件什么软件可以全面检测显示出电脑硬件参数数据_百度... 有没有可以查自己电脑配置的软件啊??? 芯片程序解密哪家好 ...文章怎么突然间阅读量开始大减,从几百掉到个位数。 百家号怎么才个位数播放量?个位数播放量怎么算? 保本收益投资合法吗 KTV客户经理的岗位职责 如何在flash cs6 中调用一个已经写好的javascript文件里面的函数 如何用vs2010编辑软件界面 Flash as2.0 中 怎么调用页面中javascript 中的函数 例如javascript 中的... KTV后勤主管主要是负责什么工作?急 人机界面用什么软件编辑? ktv楼面主管的岗位职责是什么? Flash编程三个function内的函数赋值怎么相互调用 四海云游是什么意思? 袋鼠为什么只会跳? 不含早是啥意思 一身毛,尾巴翘,不会走,只会跳,(打一动物) FLASH 函数 flash怎样执行影片剪辑中的函数?或者是执行影片剪辑中的按钮? KTV店长职责 服务员职责? 配电柜能存在什么安全隐患!还有高压变压器都能存在什么隐患,容易发生什么危险事故,发生的原因!谢谢 家用配电箱安全距离是多少? 电影《四海》中有哪些经典的台词? 一级配电箱周围的安全规定 flash里如何调用自定义函数 flash 调用外部JS函数 Flash中function的用法问题 如何在flash调用js中的方法 flash 如何调用外部影片,传变量,调用函数? flashAS3.0 在一个函数中如何 调用另一个函数的变量 flash里用ac3怎么定义函数和调用函数 一个鸡蛋一身毛,只会跳来不会跑。(打一动物) 如何在FLASH中输入数学公式? 兔子为什么要跳不走? 如何通过FLASH里面的js函数来调用网页里的html函数,从而实现一个弹出窗口。 为什么兔子只会跳不会走??? 一身毛翘尾巴不会走只会跳打一动物 只跳不走见洞钻是什么动物? 2022年海南5月份计算机三级报名时间 谁知道麻雀为什么只会跳不会走? 为什么青蛙是跳不是走 急求答案!!!一个动物,不会飞,不会走,不会游泳,只会跳,有2条腿,长翅膀的,是什么动物??? 2022年春季消防安全公开课五大板块都是什么 2022年三月份日日消防安全直播讲了哪三关 兔子为什么只会跳?