Flash / Flex / ActionScript/Function/function — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Версия 12:19, 26 мая 2010

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>