仓酷云

标题: 来看看:flash action 详解(9) [打印本页]

作者: 不帅    时间: 2015-1-15 22:22
标题: 来看看:flash action 详解(9)
可以为受众提供跨计算机、智能手机、平板电脑和电视平台的令人痴迷的一致性体验。
同变量一样,函数也能够具有全局性.只需在声明时在后面给它加一个_global就能够了:
//盘算矩形面积的全局函数
_global.areaOfBox=function(a,b){
returna*b;//在这里前往了局
}
//测试函数
area=areaOfBox(3,6);
trace("area="+area);
请注重:在函数体中呈现的关头字this代表的是挪用函数的MovieClip,而不是函数体地点的MovieClip.这很简单被疏忽而发生不希冀的了局.假如要指定this所代表的工具就要用到Function.call()和Function.apply()办法.在前面的arguments工具先容中会讲到.
函数参数的反省

为了包管函数运转的准确性,我们偶然必需检测用户是不是给了充足的或是准确范例的参数.上面是我对下面例子举行修改后的代码:
//盘算矩形面积的全局函数
_global.areaOfBox=function(a,b){
//输入两个参数之和,用于了解上面的typeof语句
trace("a+b="+(a+b));
//检测参数是不是充足且范例准确
if(a==undefined||b==undefined||typeof(a+b)!="number"){
trace("<参数毛病>");
return0;//前往0作为毛病时的了局
}
returna*b;//在这里前往了局
}
//测试函数
trace("----上面是准确的参数----");
area=areaOfBox(3,6);
trace("area="+area);
trace("----上面是毛病的参数----");
//这里为了节俭篇幅,我在命令中间接挪用函数,而不是先将前往值赋给一个变量
//实在这才是我们经常使用的函数挪用办法
trace("area="+areaOfBox(3,"6"));
trace("----上面是不敷的参数----");
trace("area="+areaOfBox(3));
上例中我用a==undefined来判别a是不是被赋值了(便是否已界说,关于undefined数据范例的内容请参阅前一章的内容).为了确保十拿九稳,我还用了b==undefined来包管b也已被赋值,两头利用一个逻辑"或"运算符||来毗连这两个前提.
别的,在这两个前提前面我又经由过程typeof(a+b)!="number"来确认参数范例是不是准确(关于typeof关头字的信息请参考前一章).这里我使用了Actionscript的一个特性:数值与字符串相加的和会被优先做为字符串处置.以是a+b中只需有一个为字符串,那末全部a+b的前往值就是一个字符串,在前面经由过程typeof来检测的了局天然就不是我们所要的"number".经由过程trace("a+b="+(a+b));输入的了局能够看出这一点.

--------------------------------------------------------------------------------
在Actionscript中除用户界说的函数外,另有预界说的内建函数.关于分歧的工具,也有分歧的函数(大概说是办法)能够挪用.上面是具有最高优先级的体系内建函数列表:
函数申明
Boolean将所给参数值转化为逻辑值(也叫做布尔值)
escape将所给参数转化为字符串并用URL格局编码(一切非尺度字符将被转化为以%开首的十六进制值)
eval前往所给参数暗示的工具,参数能够是常量,表达式,属性等(这在DuplicateMovieClip时常常用到)
getProperty前往指定工具的指定属性值
getTimer前往从动画入手下手运转到以后所经由的毫秒数
getVersion前往Flash版本和操纵体系信息
isFinite前往所给参数是不是是有穷的(逻辑型前往值)
//创立新工具
object_1=newObject();
object_1.value=0;//为工具到场value属性并赐与初值0
object_2=object_1;//由object_1复制出一个object_2,此时二者的value属性均为0
//测试函数
areaOfBox.call(object_1,3,6);
trace("object_1.value="+object_1.value);
array_ab=[4,5];//创立参数数组
areaOfBox.apply(object_2,array_ab);
trace("object_2.value="+object_2.value);

为何要经由过程call和apply来挪用函数?如许不比后面的间接挪用贫苦吗?
切实其实,如许挪用函数对照贫苦,但你注重到了我利用的第一个参数没有?经由过程第一个参数能够指定在函数体中的this关头字代表甚么工具,这就是用call和apply的优点(关于工具和this的内容在前面章节中才会提到,在这里临时不提).这个优点只要在实践的编程中你才干体味失掉,这里只是扼要先容一下,让你有个基础的观点.
假如函数中没有利用this关头字,第一个参数要用null取代.
在本例中第一个前往值被放进object_1的value属性中,另外一个会被放进object_2的value属性中.经由过程call和apply的第一个参数我们让函数体中的this前后代表了object_1和object_2两个工具.第一个参数前面的实践参数的赐与完整按照要挪用函数的参数个数和范例断定.
至于call与apply的分歧的地方下面已暗示得很分明了:apply的实践参数是经由过程数组传送的.
arguments工具
arguments工具
arguments工具,望文生义就是参数工具,它包括的是函数挪用的参数.作为一个数组工具,它只要三个属性:
属性形貌
arguments.callee正被挪用的函数
arguments.caller正在举行此挪用的函数
ar</p>
使用Flash创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。您也可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的Flash应用程序。
作者: 精灵巫婆    时间: 2015-1-17 17:48
Flash插件的最新版本允许设计者控制Box之外的元素和把Flash元素放在HTML或其它元素上面或下面,这就为交互性打开了一个崭新的世界。
作者: 小女巫    时间: 2015-1-22 15:20
矢量图形相对于位图的另一个优势是可以随意缩放的能力。这是对动画进程的奖赏,对用户来说也是一个很酷的特征。在Flash之前,Web上没有这种功能。
作者: 山那边是海    时间: 2015-1-31 11:12
矢量图形相对于位图的另一个优势是可以随意缩放的能力。这是对动画进程的奖赏,对用户来说也是一个很酷的特征。在Flash之前,Web上没有这种功能。
作者: 老尸    时间: 2015-2-6 19:14
flash的流行因素包括了技术上的优势——技术本身的优势;技术掌握上的优势;其他技术的弱势;
作者: 分手快乐    时间: 2015-2-18 09:16
都着重在优点方面,请尽量答的详细、深入一些,谢谢!拿了我全部的爱问分了已经
作者: 变相怪杰    时间: 2015-3-6 04:43
Flash插件的最新版本允许设计者控制Box之外的元素和把Flash元素放在HTML或其它元素上面或下面,这就为交互性打开了一个崭新的世界。
作者: 莫相离    时间: 2015-3-12 21:24
Flash也可以合成简单的JavaScript函数。如果你学过某种脚本语言如JavaScript或者Macromedia的Director Lingo,你会知道这有点令人畏缩。
作者: 深爱那片海    时间: 2015-3-20 04:44
Flash也可以合成简单的JavaScript函数。如果你学过某种脚本语言如JavaScript或者Macromedia的Director Lingo,你会知道这有点令人畏缩。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2