Flash / Flex / ActionScript/Function/function
Содержание
- 1 Accessing Definitions from Within a Function
- 2 A function that calculates the area of a rectangle and returns the value as a number
- 3 Calling Functions
- 4 Creating Recursion function
- 5 Define a function
- 6 Functions as Objects
- 7 Function to search an array
- 8 Global Functions
- 9 Nested function call
- 10 Nested Functions
- 11 Package-Level Functions
- 12 Passing Parameters to Your Function
- 13 Source-File-Level Functions
- 14 Writing Recursive Functions
Accessing Definitions from Within a Function
<source lang="java">
public function m ( ) {
var currentObject = this; function f ( ) { trace(currentObject); }
}
</source>
A function that calculates the area of a rectangle and returns the value as a number
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ trace(calculateArea(2,3)); } function calculateArea(nA:Number, nB:Number):Number { var nArea:Number = nA * nB; return nArea; } }
}
</source>
Calling Functions
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ displayGreeting(); } function displayGreeting():void { trace("Hello."); } }
}
</source>
Creating Recursion function
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ trace(factorial(3)); } function factorial(nOperand:Number):Number{ if(nOperand > 0){ return nOperand * factorial(nOperand - 1); } else{ return 1; } } }
}
</source>
Define a function
<source lang="java">
/* function functionName():datatype {
statements
}
- /
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ displayGreeting(); } function displayGreeting():void { trace("Hello."); } }
}
</source>
Functions as Objects
<source lang="java">
package{
import flash.display.Sprite; import flash.events.MouseEvent; public class Main extends Sprite{ public function Main(){ addEventListener(MouseEvent.CLICK, onClick); } function onClick(event:MouseEvent):void { trace(" Handle click."); } }
}
</source>
Function to search an array
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){
} function findMatchingIndex(aTitles:Array, sTitle:String):Number { for(var i:Number = 0; i < aTitles.length; i++) { if(aTitles[i] == sTitle) { return i; } } return null; } }
}
</source>
Global Functions
<source lang="java">
package {
import flash.system.*; public function isLinux ( ) { return Capabilities.os == "Linux"; }
}
</source>
Nested function call
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ function1(); function2(); } function function1():void{ function2(); } function function2():void{ if(arguments.caller == function1) trace("function2 called from function1"); else trace("function2 not called from function1"); } }
} // function2 not called from function1 // function2 not called from function1
</source>
Nested Functions
<source lang="java">
public function a ( ) {
b( ); function b ( ) { }
}
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){
} public function getRandomPoint () { var randomX = getRandomInteger(5, 10); var randomY = getRandomInteger(10, 15); function getRandomInteger (min, max) { return min + Math.floor(Math.random( )*(max+1 - min)); } } }
}
</source>
Package-Level Functions
<source lang="java">
package packageName {
public function identifier ( ) { }
} To make the function accessible only in that package, we precede the definition with the access control modifier internal: package packageName {
internal function identifier ( ) { }
} package utilities {
import flash.system.*; public function isMac ( ) { return Capabilities.os == "MacOS"; }
}
</source>
Passing Parameters to Your Function
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ trace(getCircumference(10)); } function getCircumference(diameter:Number):Number { return Math.PI * diameter; } }
}
</source>
Source-File-Level Functions
<source lang="java">
package {
class A { public function A ( ) { } }
} function f ( ) { } Access-control modifiers cannot be included in source-file-level function definitions.
</source>
Writing Recursive Functions
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ trace(factorial(3)); // Displays : 6 } function factorial(i:uint):uint { if (i == 0) { return 1; } else { return (i * factorial(i-1)); } } }
}
</source>