# AS3 & Xml positioning of images

**URL:** <https://forum.kirupa.com/t/as3-xml-positioning-of-images/292321>\
**Category:** flash\
**Created:** [July 13, 2009, 12:27pm UTC](https://forum.kirupa.com/t/as3-xml-positioning-of-images/292321 "2009-07-13T12:27:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![donkeykong](https://avatars.discourse-cdn.com/v4/letter/d/6f9a4e/32.png) [@donkeykong](https://forum.kirupa.com/u/donkeykong)\
**Post date:** [July 13, 2009, 12:27pm UTC](https://forum.kirupa.com/t/as3-xml-positioning-of-images/292321/1 "2009-07-13T12:27:38Z")

</div>

Hi all

I have been trying to make changes within some AS3 script that reads in XML images. I have a rotating menu that reads in images from xml. I can’t seem to make the radius, the circle larger so the images are more spread out.

with the images now being control by thye xml do I need add something to the xml ?

many thanks for any help:!:

here is the actionscript;

package  
{  
import flash.display.DisplayObject;  
import flash.display.MovieClip;  
import flash.display.Loader;  
import flash.display.Sprite;  
import flash.events.Event;  
import flash.events.MouseEvent;  
import flash.net.URLLoader;  
import flash.net.URLRequest;  
import flash.net.URLLoaderDataFormat;  
import soulwire.ui.CircleMenu;  
public class Main extends Sprite  
{

//\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ \_\_\_\_\_  
//————————————————————————————————————————————— CLASS MEMBERS VALUE

public var circleMenu: CircleMenu;  
public var xmlLoader: URLLoader;

//\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
//——————————————————————————————————————————————— CONSTRUCTOR

public function Main()  
{  
circleMenu = new CircleMenu( 300, 32, 14 );  
circleMenu.x = 50;  
circleMenu.y = 300;  
addChildAt( circleMenu, 0 );

// Use URLLoader to load XML

xmlLoader = new URLLoader();  
xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;

// Listen for the complete event  
xmlLoader.addEventListener(Event.COMPLETE, onXMLComplete);  
xmlLoader.load(new URLRequest(“data.xml”));

/\*for (var i:int = 0; i \< 20; i++)  
{  
// MyMenuItem can be a symbol from your library  
// or any class which extends DisplayObject!

```
var item:MyMenuItem = new MyMenuItem();

item.txt.text = 'Menu Item ' + (i + 1);
item.txt.mouseEnabled = false;
item.buttonMode = true;
item.addEventListener( MouseEvent.CLICK, onMenuItemClick );

circleMenu.addChild( item );

```

}

circleMenu.currentIndex = 4;\*/

// Enable the mouse wheel

stage.addEventListener( MouseEvent.MOUSE\_WHEEL, onMouseWheel );

// Set up the UI

ui.spacingSlider.addEventListener( Event.CHANGE, onSliderChange );  
ui.radiusSlider.addEventListener( Event.CHANGE, onSliderChange );  
ui.minAlphaSlider.addEventListener( Event.CHANGE, onSliderChange );  
ui.minScaleSlider.addEventListener( Event.CHANGE, onSliderChange );  
ui.scaleSlider.addEventListener( Event.CHANGE, onSliderChange );  
ui.itemsSlider.addEventListener( Event.CHANGE, onSliderChange );

ui.spacingSlider.dispatchEvent( new Event( Event.CHANGE) );  
ui.radiusSlider.dispatchEvent( new Event( Event.CHANGE) );  
ui.minAlphaSlider.dispatchEvent( new Event( Event.CHANGE) );  
ui.minScaleSlider.dispatchEvent( new Event( Event.CHANGE) );  
ui.scaleSlider.dispatchEvent( new Event( Event.CHANGE) );  
ui.itemsSlider.dispatchEvent( new Event( Event.CHANGE) );  
}

//\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
//———————————————————————————————————————————— EVENT HANDLERS

private function onXMLComplete(event:Event):void  
{  
// Create an XML Object from loaded data  
var data:XML = new XML(xmlLoader.data);

// Now we can parse it  
var images:XMLList = data.image;

for(var i:int = 0; i \< images.length(); i++)  
{  
// Get info from XML node  
var imageName:String = images\*.@name;  
var imagePath:String = images\*.@path;

```
// Load images using standard Loader
var loader:Loader = new Loader();

// Listen for complete so we can center the image
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onImageComplete);
loader.load(new URLRequest(imagePath));

// Create a container for the loader (image)
var holder:Sprite = new Sprite();
holder.addChild(loader);

// Same proceedure as before
holder.buttonMode = true;
holder.addEventListener( MouseEvent.CLICK, onMenuItemClick );

// Add it to the menu
circleMenu.addChild(holder);

```

}  
}

private function onImageComplete(event:Event):void  
{  
var img:Loader = event.currentTarget.loader;  
img.content[“smoothing”] = true;  
img.x = -(img.width/2);  
img.y = -(img.height/2);  
}

private function onMouseWheel( event:MouseEvent ):void  
{  
event.delta \< 0 ? circleMenu.next() : circleMenu.prev();  
}

private function onMenuItemClick( event:MouseEvent ):void  
{  
circleMenu.scrollToItem( event.currentTarget as DisplayObject );  
}

private function onSliderChange( event:Event ):void  
{  
switch( event.currentTarget )  
{  
case ui.spacingSlider:  
circleMenu.angleSpacing = event.currentTarget.value;  
break;

```
case ui.radiusSlider: 
 circleMenu.innerRadius = event.currentTarget.value;
break;

case ui.minAlphaSlider:
 circleMenu.minVisibleAlpha = event.currentTarget.value;
break;

case ui.minScaleSlider:
 circleMenu.minVisibleScale = event.currentTarget.value;
break;

case ui.scaleSlider:
 circleMenu.activeItemScale = event.currentTarget.value;
break;

case ui.itemsSlider:
 circleMenu.visibleItems = event.currentTarget.value;
break;

```

}  
}

}

}
