# Converting E4X into external XML

**URL:** <https://forum.kirupa.com/t/converting-e4x-into-external-xml/306605>\
**Category:** flash\
**Created:** [March 18, 2010, 9:49am UTC](https://forum.kirupa.com/t/converting-e4x-into-external-xml/306605 "2010-03-18T09:49:33Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![IanCremona](https://avatars.discourse-cdn.com/v4/letter/i/65b543/32.png) [@IanCremona](https://forum.kirupa.com/u/IanCremona)\
**Post date:** [March 18, 2010, 9:49am UTC](https://forum.kirupa.com/t/converting-e4x-into-external-xml/306605/1 "2010-03-18T09:49:33Z")

</div>

Currently my class code looks like this:

[AS]package {

```
import flash.display.MovieClip;

//import flash.net.URLLoader;

import mcPromotion;

import mcContent;

import addTest;

public class BannerClassEN extends MovieClip {

	private var imagenumber:Number;

	//private var imageRequest:URLRequest = new URLRequest("test.jpg");

	private var promotion:mcPromotion;

	private var _mcContent:mcContent;

	private var _mcContentX:Number;

	private var _mcContentY:Number;

	private var loadImage:String;

	//private var addBox:addTest = new addTest();

	// If anyone manages to load the XML dynamically please send the source files to [email]iancremona@gmail.com[/email]

	////==============================================================================================================================================================================================================================================================================================================================================================================================================================================

	////==============================================================================================================================================================================================================================================================================================================================================================================================================================================

	public var promotionsXML:XML =
	&lt;promotions&gt;
	  	&lt;promotion source="imagepath" urlLink="imagelink"&gt;&lt;/promotion&gt;
		&lt;promotion source="imagepath" urlLink="imagelink"&gt;&lt;/promotion&gt;
		&lt;promotion source="imagepath" urlLink="imagelink"&gt;&lt;/promotion&gt;
	&lt;/promotions&gt;;
	////==============================================================================================================================================================================================================================================================================================================================================================================================================================================

	////==============================================================================================================================================================================================================================================================================================================================================================================================================================================

	public function BannerClassEN() {

		loadXML();

		createPromos();

	}

	private function loadXML():void {

		trace(promotionsXML.children()[0]);

	}

	private function createPromos():void {

		_mcContentX=195;// I don't know why I had to do this! I guess the MC positioning needs amending

		_mcContentY=31.5;//Extra

		for (var i:Number = 0; i &lt; promotionsXML.promotion.length(); i++) {

			promotion = new mcPromotion();

			addChild(promotion);

			_mcContent = new mcContent();

			promotion.setType(_mcContent);

			_mcContent.x=_mcContentX;

			_mcContent.y=_mcContentY;

			_mcContentX+=_mcContent.width;

			trace("XXXXX content width" + _mcContent.width);

			// ------------------------------

			// I would like to add image here

			//_mcContent.promoThumb.alpha = .2;

			// ------------------------------

			_mcContent.promoTxt.text=promotionsXML.children()*;

			promotion.name="promotion"+i;

			trace(promotionsXML.children()*);

			loadImage=promotionsXML.children()*.attribute("source");

			trace("URLURL == "+promotionsXML.children()*.attribute("urlLink"));

			_mcContent._URLLink=promotionsXML.children()*.attribute("urlLink");

			_mcContent.imageSrc=loadImage;

			trace("loadImage"+ loadImage);

			//_mcContent.promoThumb

			//imagenumber = loadImage;

			trace("imagenumber"+ i);

		}

	}

}

```

}[/AS]

I have tried to modify the code to load the XML externally:

[as]  
public function BannerClassEN() {

```
		loadXML();

		createPromos();

		kungFuContent = new XML();
		kungFuContent.ignoreWhite=true;
		kungFuContent.load("promo.xml");
		kungFuContent.onLoad = function(success1)
		{
		        if(success1)
		        {
		                promotionsXML=kungFuContent;
						trace(promotionsXML);
		        }
		};

	}

```

[/as]

But get the error:

TypeError: Error #1009: Cannot access a property or method of a null object reference.  
at BannerClassEN/createPromos()  
at BannerClassEN()

Does anyone know why I am getting this? thanks  
Ian
