as3으로 기본 메뉴 만들기
ActionScript 3 2007. 6. 11. 14:42 |package
{
import flash.display.*;
import flash.text.*;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.*;
public class Main extends MovieClip
{
protected var loader:URLLoader;
public function Main():void
{
System.useCodePage = true;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
loader = new URLLoader("url.xml");
loader.addEventListener(Event.COMPLETE, complete);
}
function complete(event:Event):void
{
var xmll:XMLList = XMLList(event.currentTarget.data);
var menu_array:Array = new Array();
var cnt:uint = xmll.main.length();
for(var i:uint=0; i<mainCnt; i++){
var main_xml:XML = xmll.main[i];
var lavel:String = main_xml.@name;
var url:URLRequest = new URLRequest(main_xml.@url);
menu_array.push({lavel:lavel, url:url});
}
start(menu_array);
}
protected function start(menu_array:Array):void
{
var prev_sp:Main_SP;
var cnt:uint = menu_array.length;
for(var i:uint=0; i<cnt; i++)
{
var obj:Object = menu_array[i];
var main_sp:Main_SP = new Main_SP(obj.lavel, obj.url);
main_sp.x = prev_sp.x + prev_sp.width + 20;
addChild(main_sp);
prev_sp = main_sp;
}
}
}
public class Main_SP extends Sprite
{
protected var __url:URLRequest;
protected var __tf:TextField;
public function Main_SP(_lavel:String, _url:URLRequest)
{
__tf = new TextField();
__tf.text = _lavel;
__tf.autoSize = TextFieldAutoSize.LEFT;
addChild(__tf);
__url = _url;
addEventListener(MouseEvent.ROLL_OVER, over);
addEventListener(MouseEvent.ROLL_OUT, out);
addEventListener(MouseEvent.CLICK, click);
}
public function over(event:Event):void
{
__tf.textColor = 0xFFCC00;
}
public function out(event:Event):void
{
__tf.textColor = 0x000000;
}
public function click(event:Event):void
{
navigateToURL(__url, "_top");
}
}
}
참고로 라이브 코딩만 하고 컴파일은 안한 것이라 문법 체그 이외의 테스트는 전혀 해보지 않았다... 그냥 코드만 보고 변경된 데이터 타입들과 클래스들을 확인하고 흐름만 알길...
'ActionScript 3' 카테고리의 다른 글
addChild 는 한개의 오브젝트에만 가능하다... 에 이어... (0) | 2007.06.15 |
---|---|
for(var i:uint 아무 생각 없이 쓰다가는 컴퓨터 다운된다... (0) | 2007.06.12 |
removeChild 는 완전한 삭제가 아니다. (0) | 2007.06.08 |
addChild 는 한개의 오브젝트에만 가능하다 (0) | 2007.06.04 |
navigateToURL target 의 기본값은 _blank 다 (0) | 2007.06.01 |