Flash / Flex / ActionScript/XML/childIndex
Версия от 12:19, 26 мая 2010; (обсуждение)
Содержание
Accessing Sibling Nodes
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var novel:XML = <BOOK ISBN="0000000000"> <TITLE>ActionScript</TITLE> <AUTHOR>J, J</AUTHOR> <PUBLISHER>Books Ltd</PUBLISHER> </BOOK>; var author:XML = novel.AUTHOR[0]; // Previous sibling trace(author.parent().*[author.childIndex( )-1]); // Next sibling trace(author.parent().*[author.childIndex( )+1]); } }
}
</source>
Get previous Sibling from a giving xml data
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ previousSibling(someNode); } public function previousSibling (theNode:XML):XML { if (theNode.parent() != null && theNode.childIndex( ) > 0) { return theNode.parent().*[theNode.childIndex( )-1]; } else { return null; } } }
}
</source>
Get the next sibling from a giving xml data
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ nextSibling(someNode); } public function nextSibling (theNode:XML):XML { if (theNode.parent( ) != null && theNode.childIndex() < theNode.parent().children().length( )-1) { return theNode.parent().*[theNode.childIndex( )+1]; } else { return null; } } }
}
</source>
look index of a child node up using childIndex()
<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.movie[2].childIndex()); // Displays: 3 } }
}
</source>