1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| package fr.emob.dvd.menu
{
import com.asual.swfaddress.SWFAddress;
import com.greensock.TweenMax;
import com.greensock.easing.Quad;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.Font;
[Event(name="menuChange", type="fr.emob.dvd.menu.MenuEvent")]
public class Menu extends MovieClip
{
public var MenuMasque:MovieClip;
public var MenuTexture:MovieClip;
private var xmlLoader:URLLoader;
private var xmlData:XML;
//private var menuItems:Array;
private var currentItem:MenuItem;
public function Menu()
{
init();
}
private function init():void
{
/*
var a:Array = Font.enumerateFonts();
for each( var s:Object in a )
{
trace( s.fontName );
}
*/
MenuTexture.mask = MenuMasque;
xmlLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, onXMLLoadComplete );
xmlLoader.load( new URLRequest( 'data/xml/menu.xml' ) );
}
private function onXMLLoadComplete( event:Event = null ):void
{
xmlData = new XML( xmlLoader.data );
var items: XMLList = xmlData.item;
var n:int = items.length();
var mi:MenuItem;
while (n--)
{
mi = new MenuItem( items[n]);
mi.y = n * MenuItem.ITEM_HEIGHT;
addChild( mi );
}
addEventListener( MouseEvent.CLICK, onClick );
}
private function onClick(event:MouseEvent = null ):void
{
if ( event.target is MenuItem && currentItem != event.target )
{
if (currentItem) currentItem.selected = false;
currentItem = MenuItem( event.target );
currentItem.selected = true;
TweenMax.to( MenuMasque, .4, {y: currentItem.y + 12} );
dispatchEvent( new MenuEvent (currentItem.id) );
}
}
}
} |
Partager