由于actionscript :创建可重用代码

你想表演了一系列行动,在不同的时间里不重复不必要的代码在你整个的电影。

  

创造一个功能,然后拨打电话(即引用) ,它的名字时,你必须执行这些行动。

有一个以上的方式,以创造(即界定或申报)的功能。 这里是如何创造一个有名字的功能:

 功能functionname ( ) ( / /报表放在这里。  )电话(即执行) ,被点名的功能,是指它的名字,如: 
  functionname ( ) ; 

这里是如何创造一个功能直译:

  functionname =功能( ) ( / /报表放在这里。  ) ; 

虽然没有严格规定,它被认为是一种最好的方法,以包括一个分号以下闭幕曲振奋精神,当确定一个功能的文字。

分组报表成为一个功能让您确定功能一次,但执行它多次你想。 这是有益的,当你需要进行类似的行动,在不同的时间里重复相同的代码在多个地方。 保持你的代码集中在功能,使它更容易理解(因为你可以写的功能,一旦再忽视细节时,使用它) ,并易于维护(因为你可以作出改变,在一个地方,而不是在多个地方) 。

还有两种较常见的方法界定由于actionscript职能:作为命名的功能或功能文字(称无名氏职能) 。 每个这些方式申报的功能有其自己使用。

被点名的函数声明是最常见的选择(当不能确定一个函数被用来作为一种方法) ,并至少有一个好处,超过功能文字:点名功能方便内部整个关键帧(或( )或onclipevent ( )处理器) ,即使他们来后,把电话转给要找的功能。

举例来说,即使writemessage ( )函数是没有申报后,才援引的是,该功能仍然可用:

  / /引用writemessage ( )函数,这是随后宣称,在该脚本。  writemessage ( ) ; 
  / /申报(界定) writemessage ( )函数作为一个有名字的功能。 功能writemessage ( ) (微量( "你好,朋友" ) 。 ; ) 
  / /功能,可之前或之后,它已被宣布。  writemessage ( ) ; 

相比之下,一台功能直译是方便只从行代码来后声明:

  / /由于actionscript译员将不能够找到一个函数与这个名字, / /等,没有任何事情发生(失败的提示) 。  writemessage2 ( ) ; 
  / /申报(界定) writemessage2 ( )函数作为一个匿名函数字面writemessage2 =功能( ) (微量( "你好,朋友" ) 。 ; ) ; 
  / /但是,函数是可从行代码后,它已被宣布。  writemessage2 ( ) ; 

然而,有几个原因,以使用功能的文字:

你可以指派一个函数字面到一个全局变量,使该功能可从任何时限。

在字面上,功能提供了方便,紧凑,直观的方式,以确定方法为对象。

功能的文字表达,可以像对待其他变数,因为它们可以通过其他职能或有其价值观念,重新分配。

在这里,我们指派一个函数字面作为财产的安全_global对象:

  _ global.launchbookexamples =功能( ) ( geturl ( " http://www.person13.com/ascb " , " _blank " ) ; ) ; \ 

因此,无论从任何地方的任何时限的,你可以执行的功能由简单地用它的名字。 举例来说,你可能会重视这个脚本以一个按钮:

  mybutton.onrelease =功能( ) ( launchbookexamples ( ) ; ) ; 

在这里,我们确定的功能作为一种电影剪辑(如onenterframe ( )是一个特殊的,内置式的方法为电影剪辑,你需要确定,然后才可以使用) :

  myclip_mc.onenterframe =功能( ) (微量( " hooray方法! " ) ; ) ; 

当然,你可以定义定制方法以及简单的分配功能字面到一个新的对象的属性:

  myclip_mc.mycustommethod =功能( ) (微量( " hooray方法! " ) ; ) ; 

这也是值得注意的是,你可以设置一个方法等于另一种方法。 这种技术通常被用来转让同一行动,以一个电影剪辑或按钮,为两个不同的事件。 您可以定义一个匿名函数,并指定它的一个事件处理方法,然后指派一个事件的处理方法,以另一种。 一个共同的例子就是当你想确定,同时采取行动,当用户释放出一个按钮或电影剪辑时,他们释放外:

  / /定义一个onrelease ( )方法为一个电影剪辑。  mymovieclip.onrelease =功能( ) (微量( " hooray方法! " ) ; ) ; 
  / /转让同一方法定义向onreleaseoutside ( )方法一样。  mymovieclip.onreleaseoutside = mymovieclip.onrelease ; 

函数也可以通过数据。 你可以很方便地通过一个函数字面到另一个功能,因此需要的功能,它的一个论据,如setinterval ( )或array.sort ( )方法:

  / /设置一个区间,要求职能递增一个变量时,我和显示器/ /价值。  setinterval (函数( ) (微量( + +一) ; ) , 1000 ) ; 

职能是受相同的范围局限变数。 时限职能是获取,而只是时间上他们的定义是存在。 时间表功能可以是一个命名功能或匿名函数分配给一个时间表变数。 此外,时间表功能,可称作只有用正确目标的路径。 当你上网的功能,从同一个时间表,那你不必列入目标的道路,但是当你想存取的功能,从另一个时间表,那你要确保你提供正确的轨道上来。

  / /明确地调用一个函数的定义就主要时间表。  _ root.myfunction ( ) ; 

如果你的函数是用来在同一时间只,你不必担心空间的问题。 不过,如果你打算使用功能,在整个许多日程安排,两个不同的方案,一般受雇:

界定功能,作为一个全球性的功能。 如果你提出一个函数一个全球功能,你可以要求它的名字从任何时间表,在电影而不必顾虑范围:

  _ global.myfunction =功能( ) (含有微量( "全球职能是乐趣! " ) ; ) ; 

界定功能,作为一个(静态)方法的一个全球一流的。 所有的内置类是全球性默认情况下,如果你定义的一类,具有全球性的构造,那么即使你的定制班,可以是全球性的。 这种技术实在是一个变化对第一,但与优点,因为班级为您提供的方式安排你的职责,在一个潜在的有意义的方式(例如,内置式数学课举办许多数学函数) 。

这是一篇文章说,由萨文比加布里埃尔
免责声明:我们的网站是不负责所载资料由本条规定。 这篇文章根本没有反映看法,意见,思想或信仰的文章目录中的工作人员。

翻译预告:文章" ,由于actionscript :创建可重复使用的密码"被翻译使用的自动翻译服务。 我们真诚地道歉,对任何翻译错误发生。 谢谢你的谅解。

Online: 488 users browsing the articles directory