Flash AS3.0菜鸟学飞教程:函数之返回语句

2016-01-29 12:09 53 1 收藏

Flash AS3.0菜鸟学飞教程:函数之返回语句,本例为Flash AS3.0菜鸟学飞系列教程,在上一节中我们初步了解和认识了“函数”的引用,在本Flash AS3.0教程中我们来学习函数之返回语句,希望能给朋友们带来帮助~~

【 tulaoshi.com - Flash 】

本文由 中国 cao4811 原创,转载请保留此信息!

本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请点击这里,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!


在学习中遇到问题请到 论坛 发贴交流!

更多AS 3.0教程:http://www.jcwcn.com/portal-topic-topicid-2.html


  本例为Flash AS3.0菜鸟学飞系列教程,在上一节中我们初步了解和认识了“函数”的引用,在本Flash AS3.0教程中我们来学习函数之返回语句,希望能给朋友们带来帮助~~


学习AS3菜鸟起飞吧之—函数(二):函数之返回语句


如果希望函数有返回值,必须使用return语句


下面的函数除了输出信息以外,还返回了输出的信息。这时函数的返回类型从void类型变成了“*”类型:

var s:String = trace("hello");
   function traceMsg(msg:*)
   {
        trace(msg);
        return msg;
    }

使用return语句还可以中断函数的执行,这个方式经常会用在判断语句中。如果某条件为false,则不执行后面的代码,直接返回。

下面的代码判断函数的参数是不是数字,如果不是数字,就使用return语句直接返回,而不执行后面的代码:

function area(r:*):void
    {
         var b:Boolean = r is Number;
         if(!b)
         return;
         trace("后面的代码");
    }

这里定义的函数把r作为参数,在函数中,首先判断参数是否数字,如果不是数字利用return语句,直接退出该函数,后面的代码就不执行了。

比较下面调用函数的结果,前者能执行函数内的输出语句,后者则不能:
area(7);
area("7");

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

 在有些函数中需要编写多个返回语句,如,在条件语句中每一个条件分支都可以对应一条返回语句。

下面的方法根据参数来返回不同的实例:

function factory(obj:String):Load {
        if (obj=="xml") {
                trace("return LoadXml instance");
                return new LoadXml  ;
        } else if (obj=="sound") {
                trace("return LoadSound instance");
                return new LoadSound  ;
        } else if (obj=="movie") {
                trace("return LoadMovie instance");
                return new LoadMovie  ;
        } else {
                trace("error");
        }
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

怎样编写函数

  我们通过编写一个求距离的函数例子,来说明函数的编写过程。

  首先要确定函数的参数,由于点在Flash中是用二维坐标表示的,所以每个点就需要两个参数,求两点之间的距离函数就需要4个函数,由于坐标和距离都是用数字表示的,所以参数的类型是Number类。

  函数的初步框架:

function distance(x1:Number,y1:Number,x2:Number,y2:Number):Number
{
    return 0;
}

函数中加入了返回0的return语句,这个返回语句是必须的,因为只有返回了Number类型的值,测试程序时才不会出错。

要测试函数是否正确只需调用一下函数。
var dis:Number = distance(0,0,100,100);
trace(dis);

检测函数的定义没有错误,就可以在函数内一步步的增加代码。对于复杂的函数,每增加一些代码后,都要及时进行测试,有错误发生时可以及时改正。

向函数内添加代码:

function distance(x1:Number,y1:Number,x2:Number,y2:Number):Number
{
    var x:Number = x2 - x1;
    var y:Number = y2 - y1;
    trace("x="+ x,"y="+ y);
    return 0;
}

上面往函数内增加了x和y的坐标之差,还加入了 trace()函数来调试结果。

调用函数后会在输出面板中显示x和y的值,通过简单的计算就可以确定x和y值的正确性。

确定无误后,可以把trace()函数注释掉。

最后在函数内加入求距离的代码:

function distance(x1:Number,y1:Number,x2:Number,y2:Number):Number
{
    var x:Number = x2 - x1;
    var y:Number = y2 - y1;
   // trace("x="+ x,"y="+ y);
    var dis:Number = Math.sqrt(x * x + y * y);
    return dis;
}

当调用上面的函数后,就可以输出两点间的距离。但是由于点(0,0)到点(100,100)的距离手工很难计算,因此不能保证求出的距离是否正确。

这时最好输出知道距离的两点,来检测结果是否正确,根据勾三股四弦五的常识,可在函数内输入下面的坐标来计算:

var dis:Number = distance(0,0,3,4);
trace(dis);

如果输出的结果为5,就说明求距离的函数编写好了。

对本文感兴趣的朋友可以到这里与作者交流:http://bbs.jcwcn.com/viewthread.php?tid=268350

来源:http://www.tulaoshi.com/n/20160129/1484853.html

延伸阅读
标签: flash教程
本文由 中国 cao4811 原创,转载请保留此信息! 本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!  在学习中遇到问题请到 论坛 发贴交流!   AS3.0 类的编写 (不使用库元件) 在上一讲中我们使用...
标签: flash教程
本文由 中国 cao4811 原创,转载请保留此信息! 本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!  在学习中遇到问题请到 论坛 发贴交流! 更多AS 3.0教程: http://www.jcwcn.com/portal-topic-topicid-2....
标签: flash教程
 AS3.0 含有多个类的AS3类文件 标准的AS3类文件是以".as"为结尾的纯文本文件。一个类文件可以包含一个或多个类定义,甚至可以直接写入一次性执行的语句。AS3中,在package花括号外,可以定义一个或多个Class,不可与文件同名。这些花括号外的类,称为当前类文件的包外类。只有当前类文件中的成员可以访问。 包外类的产生...
标签: flash教程
本文由 中国 cao4811 原创,转载请保留此信息! 本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!  在学习中遇到问题请到 论坛 发贴交流! 本例为Flash AS3.0菜鸟学飞系列教程,在上一讲中我们学习了含有多个类...
标签: flash教程
本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临! AS3.0实例教程三-打字效果 打字效果也是一个比较老的的效果,没办法本人太笨,想来想去还是觉得用这个效果来熟悉AS3.0的字符串和文本是最好的。 在AS3.0中字符串和...

经验教程

354

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部