Flash / Flex / ActionScript/Class/Dynamic object

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

Call setPropertyIsEnumerable in dynamic object

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var info:Object = new Object(  );
       info.city = "Toronto";
       info.country = "Canada";
       
       
       info.setPropertyIsEnumerable("city", false);
       
       for (var detailName:* in info) {
         trace(info[detailName]);
       }
   }
 }

}

       </source>
   
  


Create dynamic class

   <source lang="java">

dynamic class Employee {

 public var startDate:Date;
 private var age:int;

} class Report {

 public function Report (employee:Employee) {
   employee.doReport = function (  ):void {
     trace(this.startDate);  // Access to public variable allowed
     trace(this.age);        // Access to private variable denied
   }
 }

}

       </source>
   
  


Dynamic ActionScript: All dynamic instance variables are untyped and public

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var person:Person = new Person(  );
       person.eyeColor = "brown";
        
       trace(person.eyeColor);  // Displays: brown
       trace(person.age);  // Displays undefined because the person object
   }
 }

} dynamic class Person { }

       </source>
   
  


Dynamically Adding New Behavior to an Instance

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var info:Object = new Object(  );
       info.city = "Toronto";
       info.country = "Canada";
       
       info.getAddress = function (  ):String {
         return this.city + ", " + this.country;
       }
       trace(info.getAddress(  ));
       
   }
 }

}

       </source>
   
  


Dynamic References to Variables and Methods

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var info:Object = new Object(  );
       info["city"] = "Toronto";
       info["country"] = "Canada";
       var detail:String = "city";
       trace(info[detail]);  // Displays: Toronto
   }
 }

}

       </source>
   
  


Making Lookup Tables with Object Literals

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var info:Object = {city:"Toronto", country:"Canada"};
       
       //The preceding code is identical to the following code:
       var info:Object = new Object(  );
       info.city = "Toronto";
       info.country = "Canada";
       
   }
 }

}

       </source>
   
  


Processing Dynamic Instance Variables with for-each-in and for-in Loops

   <source lang="java">

for each (variableOrElementValue in someObject) {

 statements

}

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var info:Object = new Object(  );
       info.city = "Toronto";
       info.country = "Canada";
       
       for each (var detail:* in info) {
         trace(detail);
       }
   }
 }

}

       </source>
   
  


Using Dynamic Instance Variables to Create Lookup Tables

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var meal:Object = new Object(  );
       meal.t  = "t";
       meal.b = "b";
       meal.c    = "c";
       
       trace(meal); //[object Object]
   }
 }

}

       </source>