2009-09-14 3 views
1

그래서 이미지 갤러리에서 이러한 "버튼"을 "Linus0", "Linus1", "Linus2"라고 말 대신 일종의 롤오버 효과 (텍스트 변경 색상)로 만들려고합니다. 각각을 지정하고 싶습니다. 하나는 자체 레이블입니다. 배열로이 작업을 수행 할 수 있습니까? 또한 - 내가 총 6 개의 이미지가 있다고 생각하게 만드는 것은 잘못된 것입니까? 단지 5 개가 있으며, 5 개의 버튼 만 있으면됩니다. 미리 감사드립니다!이 이미지 갤러리의 버튼에 롤오버 효과를 부여하는 방법과 각 이미지에 개별 레이블을 할당하는 방법은 무엇입니까?

var myPics:Array = new Array ("image0", "image1", "image2", "image3", "image4"); 

var totalItems: int = myPics.length; 



function createLabels() : void { 
for (var i:int=0; i<=totalItems; i++){ 
    var btn_label:TextField = new TextField(); 
    this.addChild (btn_label); 
    btn_label.name = "image"+i; 

    var format:TextFormat = new TextFormat(); 
    format.font = "Verdana"; 
    format.color = 0x000000; 
    format.size = 12; 


    btn_label.defaultTextFormat = format; 

    btn_label.x = 55; 
    btn_label.y = 50+ (i*20); 

    btn_label.text = "Linus"+i; 
} 
}; 

function makeMenu():void { 
for (var i:int=0; i<=totalItems; i++) { 
    var myBtn:button = new button; 
    this.addChild (myBtn); 
    myBtn.name = "image"+i; 


    myBtn.x = 55; 
    myBtn.y = 50+ (i*20); 
    myBtn.addEventListener(MouseEvent.CLICK, btnPress); 
    myBtn.addEventListener(MouseEvent.CLICK, btnPress); 
trace(i); 

    } 
}; 

    createLabels(); 
    makeMenu(); 

    var myFrame: frame = new frame; 
    this.addChild (myFrame); 
    myFrame.name = "frame"; 
    myFrame.x = 200; 
    myFrame.y = 70; 

    var myLoader:Loader = new Loader(); 

    function btnPress (event:MouseEvent):void{ 
     this.enabled = true; 
     myLoader.load (new URLRequest("images/"+event.target.name+".jpg")); 
     addChild(myLoader); 
     myLoader.x = 201; 
     myLoader.y = 71; 
    }; 

답변

2

당신이 5 대신 6을 얻고있는 이유는 당신이 < =보다는 < 사용할 수 있다는 것입니다 : 여기에 지금까지 내 코드입니다. 'i'가 0부터 시작하기 때문에 루프가 6 번 계산됩니다. 롤오버 효과로

만 다음이가해야 할 텍스트 색상을 변경하려면 : 올리버 말한

btn_label.addEventListener(MouseEvent.MOUSE_OVER, labelOver); 


function labelOver(e:MouseEvent):void 
{ 
    e.target.defaultTextFormat.color = 0xFF0000; 
    e.target.defaultTextFormat = format; 
    btn_label.addEventListener(MouseEvent.MOUSE_OUT, labelOut); 
} 

function labelOut(e:MouseEvent):void 
{ 
    e.target.defaultTextFormat.color = 0x000000; 
    e.target.defaultTextFormat = format; 
    btn_label.removeEventListener(MouseEvent.MOUSE_OUT, labelOut); 
} 
0

한 대신이

경우와

"Linus0", "Linus1", "Linus2"라고 말하면 각 레이블에 고유 한 레이블을 지정하고 싶습니다. 배열로이 작업을 수행 할 수 있습니까?

예 유효한 이름을 포함하는 문자열 배열을 정의한 다음 버튼 레이블을 채울 수 있습니다.

관련 문제