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;
}
}
}
}