forked from: Strange XML parsing error

by hacker_5p7sz6da forked from Strange XML parsing error (diff: 1)
♥0 | Line 62 | Modified 2010-06-02 21:02:44 | MIT License
play

ActionScript3 source code

/**
 * Copyright hacker_5p7sz6da ( http://wonderfl.net/user/hacker_5p7sz6da )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/6gcr
 */

// forked from Quasimondo's Strange XML parsing error
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    public class XMLTest extends Sprite {
        
        public function XMLTest() 
        {
            test2();
        }
        
        private function test():void
        {
        		var xml:XML = <uielement type="Slider" label="Slider" ui="true" active="true" id="324">
							  <parameters>
							    <parameter id="decimals" value="0" label="Decimals" randomize="true" type="NUMBER" order="3" input="228"/>
							    <parameter id="value" value="0" label="Intensity" randomize="true" type="NUMBER" order="0" input="225" output="224"/>
							    <parameter id="max" value="100" label="Maximum Value" randomize="true" type="NUMBER" order="2" input="227"/>
							    <parameter id="label" value="Intensity" randomize="true" type="STRING" order="10"/>
							    <parameter id="order" value="0" randomize="true" type="NUMBER" order="11"/>
							    <parameter id="min" value="-100" label="Minimum Value" randomize="true" type="NUMBER" order="1" input="226"/>
							  </parameters>
							</uielement>
			
			
			switch ( xml.@type.toString() )
			{
				case "Slider":
					var tf:TextField = new TextField();
					addChild( tf );
					tf.autoSize = "left";
					
					// This still works:
					tf.text = xml..parameter.(@id=="label").@value;
					
					// This will cause an error
					var l:String = xml..parameter.(@id=="label").@value;
					
				break;
				default:
				trace( xml.@type )
				break;
			}
			
		}		
		
			
		private function test2():void
        {
        		var xml:XML = <uielement type="Slider" label="Slider" ui="true" active="true" id="324">
							  <parameters>
							    <parameter id="decimals" value="0" label="Decimals" randomize="true" type="NUMBER" order="3" input="228"/>
							    <parameter id="value" value="0" label="Intensity" randomize="true" type="NUMBER" order="0" input="225" output="224"/>
							    <parameter id="max" value="100" label="Maximum Value" randomize="true" type="NUMBER" order="2" input="227"/>
							    <parameter id="label" value="Intensity" randomize="true" type="STRING" order="10"/>
							    <parameter id="order" value="0" randomize="true" type="NUMBER" order="11"/>
							    <parameter id="min" value="-100" label="Minimum Value" randomize="true" type="NUMBER" order="1" input="226"/>
							  </parameters>
							</uielement>
			
			var l:String = xml..parameter.(@id=="label").@value;
					
			switch ( xml.@type.toString() )
			{
				case "Slider":
					var tf:TextField = new TextField();
					addChild( tf );
					tf.autoSize = "left";
					
					tf.text = l;
				break;
				default:
				trace( xml.@type )
				break;
			}
			
		}		
        	
    }
}