Flash / Flex / ActionScript/Function/function parameters

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

All arguments that have a default value must all be placed last in the order of arguments

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
   }
   function storeAddress(name:String, email:String, zip:String = null){
   }

}

       </source>
   
  


Complex data types, like Array, pass values by reference.

   <source lang="java">

The following data types are passed by value: String Number int uint Boolean Null void All other data types are passed by reference. package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var person:Object = {name:" P Gibbons"};
       capitalizeEmployeeName(person);
       trace(person.name); // Displays: PETER GIBBONS
   }
   function capitalizeEmployeeName(employee:Object):void {
       if (employee.name != null) {
           employee.name = employee.name.toUpperCase();
       }
   }
 }

}

       </source>
   
  


Function definition with multiple arguments

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       displayGreeting("Joey", "Good morning.");
   }
   function displayGreeting(sFirstName:String, sGreeting:String):void {
         trace("Hello, " + sFirstName + ". " + sGreeting); //Hello, Joey. Good morning.
   } 
 }

}

       </source>
   
  


Handling an Unknown Number of Parameters

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       trace(getAverage(1,2,3));
       trace(getAverage(1,2,3,4));
       trace(getAverage(1,2,3,4,5));
   }
   public function getAverage (...numbers) {
     var total = 0;
   
     for (var i = 0; i < numbers.length; i++) {
       total += numbers [i];
     }
   
     return total / numbers.length;
   }
 }

}

       </source>
   
  


Mix the named parameter and unnamed parameters

   <source lang="java">

public function initializeUser (name, ...hobbies) { } initializeUser("H", "v", "s"); name is assigned the value "H", and hobbies is assigned the value ["v", "s"].

       </source>
   
  


Passing Parameters by Value or by Reference

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var myVariable:Number = 5;
       var myVariablePlusOne:Number = incrementByOne(myVariable);
       trace(myVariable);
       trace(myVariablePlusOne);
   }
   function incrementByOne(nValue:Number):Number{
       nValue++;
       return nValue;
    }
 }

} // 5 // 6

       </source>
   
  


Passing Parameters to a function

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       displayGreeting("Joey");  // Displays: Hello, Joey
       displayGreeting("Robert");  // Displays: Hello, Robert
   }
   function displayGreeting(sFirstName:String):void {
      trace("Hello, " + sFirstName);
   } 
 }

}

       </source>
   
  


Primitive data types are passed by value

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
     var effort:Number = 110;
     var trimmedPercentage:Number = limitPercentage(effort);
   
     trace(effort, "%"); 
     trace(trimmedPercentage, "%");
   }
   function limitPercentage(percentage:Number):Number {
    percentage = Math.min(percentage, 100);
    percentage = Math.max(percentage, 0);
    return percentage;
   }
 }

}

       </source>
   
  


Setting Default Values: add an equal sign (=) and the default value after an argument name

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       showGreeting("Mr. Whimsy");
       showGreeting(); 
   } 
   function showGreeting(name:String = "stranger"):void {
     trace("Hello, "+ name + ", nice to meet you.");
   }
 }

}

       </source>
   
  


The rest parameter can also be used with other required parameters.

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
      // trace(sum()); // throws a runtime error.
       trace(sum(1,2,3,4,5)); // Displays: 15
   }
   function sum(base:Number, ... numbers):Number {
       var result:Number = base;
       for each (var num:Number in numbers) {
          result += num;
   
       }
       return result;
   }
 }

}

       </source>
   
  


Using the Rest Argument (...): represents a variable number of arguments as an array followed by a name for that array

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       trace(sum(1,2,3,4,5)); // Displays: 15
   }
   function sum(... numbers):Number {
       var result:Number = 0;
       for each (var num:Number in numbers) {
          result += num;
       }
       return result;
   }
 }

}

       </source>