본문 바로가기
배워보자!!/플래시

[flash as3.0] 플래시 좌우롤링배너 만들기 type2_링크,모션추가

by norinda 2015. 4. 7.
728x90


main.as


temp.fla


기존 있던 롤링배너에서 이미지 클릭시 링크 추가와

이미지 설명 텍스트 모션을 추가했습니다.




package  

{

import flash.display.MovieClip;

import flash.events.MouseEvent;

import flash.net.navigateToURL;

import flash.net.URLRequest;

import fl.transitions.Tween;

import fl.transitions.easing.*;

import fl.transitions.TweenEvent;


public class main extends MovieClip

{

private var totalNum:int = 5;

private var currentImgNum:int=0;

private var imgArr:Array = new Array();

private var btArr:Array = new Array();

private var centerX:int;

private var imgXgap:int=200;

private var linkUrl:Array=new Array("http://amy82.tistory.com/186","http://amy82.tistory.com/186","http://amy82.tistory.com/186","http://amy82.tistory.com/186","http://amy82.tistory.com/186"); //배열에 5개의 링크를 추가

public function main() 

{

init();

}

private function init():void

{

var i:int;

for(i=0; i<totalNum; i++)

{

var btMc:MovieClip;

var imgMc:MovieClip;

btMc = new button() as MovieClip;

imgMc = new img() as MovieClip;

imgMc.txtMc.a.gotoAndStop(i+1); //텍스트모션의 텍스트 정렬

imgArr.push(imgMc);

btArr.push(btMc);

btMc.myNum=i;

centerX = (stage.stageWidth-imgMc.width)/2;

imgMc.buttonMode = true;

imgMc.gotoAndStop(i+1);

imgMc.x = (centerX)+(imgXgap*i);

imgMc.y = (stage.stageHeight-imgMc.height)/2;

imgMc.addEventListener(MouseEvent.CLICK , imgClickHandler);

addChild(imgMc);

addChild(btMc);

if(i==currentImgNum)

{

btMc.gotoAndStop(1);

}else

{

imgMc.txtMc.gotoAndStop(1); //선택된 이미지 빼고 나머지 텍스트모션 1프레임 정지

btMc.gotoAndStop(2);

}

btMc.buttonMode = true;

btMc.addEventListener(MouseEvent.CLICK , btClickHandler);

btMc.y = 20;

btMc.x = 230+(i*20);

}

}

private function imgClickHandler(e:MouseEvent):void

{

var my_url:URLRequest = new URLRequest(linkUrl[currentImgNum]);

navigateToURL(my_url, "_self");//링크추가

}

private function btClickHandler(e:MouseEvent):void

{

var i:int;

imgArr[currentImgNum].txtMc.gotoAndStop(1);//버튼 클릭시 텍스트 모션 1프레임 이동

currentImgNum = e.currentTarget.myNum;

for(i=0; i<totalNum; i++)

{

if(i==currentImgNum)

{

btArr[i].gotoAndStop(1);

}else

{

btArr[i].gotoAndStop(2);

}

}

imgChange();

}

private function imgChange():void

{

var i:int;

var targetX:int;

for(i=0; i<totalNum; i++)

{

targetX = (centerX)+(imgXgap*(i-currentImgNum));

var tween1:Tween =new Tween(imgArr[i], "x", Strong.easeOut, imgArr[i].x, targetX, 1, true);

if(i==currentImgNum)

{

tween1.addEventListener(TweenEvent.MOTION_FINISH , tweenComplete);

}

}

}

private function tweenComplete(e:TweenEvent):void

{

imgArr[currentImgNum].txtMc.gotoAndPlay(2);//트윈 완료시 텍스트 모션 시작

}

}

}



반응형

댓글