Flash / Flex / ActionScript/XML/Bracket syntax

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

Accessing Values with E4X: Using the Dot Operator to Access Elements

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var movieList:XML = <movieList>
                               <listName>My favorite movies</listName>
                               <movie id="123">
                                   <title>Titus</title>
                                   <year>1999</year>
                                   <director>J T</director>
                               </movie>
                               <movie id="456">
                                   <title>Rushmore</title>
                                   <year>1998</year>
                                   <director>W A</director>
                               </movie>
                               <movie id="789">
                                   <title>Hall</title>
                                   <year>1977</year>
                                   <director>Woody Allen</director>
                               </movie>
                          </movieList>;
       
       trace(movieList.listName); // Displays : My favorite movies
       
       trace(movieList.movie[1]);
       
       trace(movieList.movie[0].title); 
       trace(movieList.movie[2].director);
   }
 }

}

       </source>
   
  


Adding Text Nodes to an XML Object

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var example:XML = <example/>;
       
       example.firstname = "Darron";
       // Create a text node from a number
       example.number = 24.9;
       // Create a text node from a boolean
       example.boolean = true;
       
       // Create a text node from an array
       example.abc = ["a", undefined, "b", "c", null, 7, false];
       
       trace( example );
   }
 }

}

       </source>
   
  


Bracket syntax is required for illegal property name

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var example:XML = <example />;
       
       example[ "some-element" ] = "";
       
       trace( example );
   }
 }

}

       </source>
   
  


Build a property name and, consequently, an element name, dynamically

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var example:XML = <example />;
       
       var id:int = 10;
       
       // Create a string to incorporate the value of id in the node name
       example[ "user" + id ] = "";    
       
       trace( example );
   }
 }

}

       </source>
   
  


Use a variable"s value as the element name to find:

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var nodeName:String = "color";
       var fruit:XML = <fruit><color>red</color></fruit>;
       trace( fruit[nodeName] );
   }
 }

}

       </source>
   
  


Use bracket notation, coupled with an integer, to access a particular element node

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var items:XML = <items>
                         <item>
                           <name>Apple</name>
                           <color>red</color>
                         </item>
                         <item>
                           <name>Orange</name>
                           <color>orange</color>
                         </item>
                       </items>;
                       
       
       trace( items.item[0].name );
       
       trace( items.item[1].name );
   }
 }

}

       </source>
   
  


XML text in a String into an actual XML object, whereas a cast would fail.

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var myXml:XML = XML("<root><party><location>Here</location></party></root>");
       trace(myXml.party[0].time); //Now
   }
 }

}

       </source>