Flash自定义函数Function需要确实路径吗
展开全部
(2)定义普通函数有两种方式,下面我们写一个函数来看看这两种方式:程序1://普通函数1:
//根据两点坐标来计算两点间距离并返回:
function Distance1(c_x0,c_y0,c_x1,c_y1){var dx = c_x1 - c_x0;
var dy = c_y1 - c_y0;
var d = Math.sqrt(dx*dx + dy*dy);return d;}程序2://普通函数2:
//另一种定义方式,作用同上:
Distance2 = function(c_x0,c_y0,c_x1,c_y1){var dx = c_x1 - c_x0;
var dy = c_y1 - c_y0;
var d = Math.sqrt(dx*dx + dy*dy);return d;};两种方式定义的函数功能是完全相同的,只不过写法上有一些不一样(注意:在flash5的环境下,第二帧方式会被flash认为是一个句子,所以会给你缩为一行,不过不影响功能)。这种写函数的方式非常方便,尤其是第二种方式,可以在程序的任何地方写入函数,但是这样写出来的函数要想调用必须写正确路径,要不然不能得到运行。另外就是必须先加载函数然后再进行调用,就是必须先定义函数再调用函数,尤其是当你的函数写在一个mc中却要在外部调用的时候,一定要等到mc加载完成后在调用(在同一帧里flash是先执行外部程序然后再执行mc内部程序的,所以这时候要注意)。
这两种函数的调用方法相同,都是直接写函数名加上参数就行了,比如我们计算从(0,0)点到(100,100)间的距离的程序:
Distance1(0,0,100,100);
(3)As是面向对象的编程语言,所以flash支持类的定义及使用,所以as可以定义类的成员函数。这些牵扯到flash的面相对象化编程,我们将等到后几张再做详细介绍,在这里我们来介绍两个定义函数的方式,它们都属于此类定义方式,不过不是给你自定义类来定义成员函数,这两种函数我们暂时可以认为是全局函数,所谓全局函数就是此类函数不用加路径就可以直接调用(包括在mc中定义后在主场景下调用)。
程序3://成员函数1:
//利用MovieClip定义,作用同上:
MovieClip.prototype.Distance3 = function(c_x0,c_y0,c_x1,c_y1){var dx = c_x1 - c_x0;
var dy = c_y1 - c_y0;
var d = Math.sqrt(dx*dx + dy*dy);return d;}程序4://成员函数2:
//利用Object定义,作用同上:
Object.prototype.Distance4 = function(c_x0,c_y0,c_x1,c_y1){var dx = c_x1 - c_x0;
var dy = c_y1 - c_y0;
var d = Math.sqrt(dx*dx + dy*dy);return d;}本来类的成员函数是要类的对象才能调用,但是这两种函数可以像普通函数一样调用,其实我们可以把整个flash的所有组件都看作为MovieClip与Object的对象,所以在整个flash中都可以直接调用。
(4)定义事件触发函数,这是flashmx新增的功能,可以直接定义mc或按钮的事件触发函数,比如当一个mc或按钮被按到的时候运行。Flashmx增添了这种功能以后使得所有的as可以完全写在时间轴上了,这样对于我们管理我们的程序带来了很大的方便(有关这方面的东西我们以后还将仔细论述)。
我们在以前的程序中也在很多地方用到了事件触发函数,比如我们以前经常用到的:
_root.onEnterFrame = function(){……}就是一个事件触发函数,它相当于onClipEvent (enterFrame)的功能,现在包括键盘事件等在内的所有事件触发功能全部都能写出这种形式的函数。
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询