AS3 스 크 립 트 가 작성 한 타이머 효과 코드

4458 단어 AS3타이머

public function ShowTimer(){ 
  stage.scaleMode = StageScaleMode.NO_SCALE; 
  stage.align = StageAlign.TOP_LEFT; 
  initMc(); 
} 
AS3 에 문자열 대신 상수 가 많이 추가 되 었 습 니 다.이것 은 우리 에 게 매우 큰 편 의 를 가 져 다 주 었 다.예 를 들 어 영화 의 크기 조정 모드 를 고정 사이즈 로 제한 하려 면 AS2 의 코드 는

Stage.scaleMode = "noScale"; 
값 은 문자열 입 니 다.입력 할 때 코드 알림 이 없어 서 오류 가 발생 하기 쉽 습 니 다.(도움말 문서 에 문자열 을 복사 하 는 경우 가 많 습 니 다.)AS3 에 있 는 코드 는:

stage.scaleMode = StageScaleMode.NO_SCALE; 
원래 문자열 “noScale” 상수 StageScaleMode.NO_SCALE 대신이렇게 하면 코드 알림 을 사용 하여 자동 으로 완성 할 수 있 으 며,잘못 져 서 생 긴 프로그램 bug 를 효과적으로 피 할 수 있 습 니 다.(또한 매우 편리 합 니 다.  )。같은 문자열 상수 와 같은 이벤트 형식 도 있 습 니 다. MouseEvent.CLICK 대신 잠깐 만.

private function initMc():void{ 
  showTxt = new TextField(); 
  addShow(showTxt,10,10,310,20); 
  addLabel(setDelayLabel,10,40,"delay:"); 
  //...other code 
} 
텍스트 상자 와 단 추 를 추가 합 니 다.다시 인용 해 야 할 텍스트 상 자 는 명시 적 으로 초기 화 되 어야 합 니 다.그렇지 않 으 면 다른 곳 에서 이 변 수 를 참조 하면 되 돌아 갑 니 다. null 。

private function addLabel(txt:TextField,x:uint,y:uint,text:String):void{ 
  txt = new TextField(); 
  txt.x = x; 
  txt.y = y; 
  txt.text = text; 
  addChild(txt); 
} 
AS3 의 모든 것 은 new 나 왔 어.단지 new 나 와 도 안 돼,써 야 돼. addChild() 디 스 플레이 목록 에 추가 합 니 다.

private function addBtn(mc:Sprite,...,clickHanlder:Function):void{ 
  mc.mouseChildren = false; 
  mc.graphics.beginFill(0x000000,0.3); 
  mc.graphics.drawRect(0,0,w,h); 
  mc.buttonMode = true; 
  mc.addEventListener(MouseEvent.CLICK,clickHanlder); 
  addChild(mc); 
  // 
  txt = new TextField(); 
  txt.name = "btnText"; 
  mc.addChild(txt); 
} 
AS3 에서 갖 고 싶 어 요. mc 단추 가 되 려 면 설정 해 야 합 니 다:

mc.buttonMode = true; 
이때 마우스 가 mc 를 지나 가 는 것 을 보 았 을 때 손 모양 이 되 지 않 았 습 니 다.그 이 유 는 마지막 줄 에 있 습 니 다. txt 추가 mc 마우스 이벤트 의 대상 은 원 하 는 mc 가 아 닌 txt 로 단추 문 자 를 표시 합 니 다.이 문 제 를 해결 하기 위해 서 는 한 마디 를 더 해 야 한다.

mc.mouseChildren = false; 
mc 를 마우스 이벤트 의 대상 으로 합 니 다(target objects)。
AS3 의 모든 보 이 는 대상 은 DisplayObject 의 하위 클래스 이 고,DisplayObject 는 EventDispatcher 의 하위 클래스 입 니 다.

Sprite → DisplayObjectContainer → InteractiveObject → DisplayObject → EventDispatcher → Object 
즉,모든 보 이 는 대상 이 직접 addEventListener 를 사용 할 수 있다 는 것 이다.

mc.addEventListener(MouseEvent.CLICK,clickHanlder); 
여기 상수 로. MouseEvent.CLICK 이벤트 형식 대신 “click” 。이런 상량 은 이후 에 더 이상 군말 하지 않 겠 다.

mc.graphics.beginFill(0x000000,0.3); 
mc.graphics.drawRect(0,0,w,h); 
AS3 의 모든 그림 그리 기 방법 이 다 놓 여 있 습 니 다. Graphics 안.Sprite 의 graphics 속성 은 Graphics 입 니 다.기본 적 beginFill ,beginBitmapFill 따위 drawCircle 、drawEllipse、drawRect 방법 을 기다 리 면 다 시 는 끝 없 이 moveTo 、lineTo 됐어.  

public function startTimer(event:MouseEvent):void{ 
  //...code here 
} 
다음은 주요 내용 입 니 다:Timer.

var delay:uint = setDelayTxt.text; 
var repeatCount:uint = setRepeatCountTxt.text; 
if(timer == null){ 
  timer = new Timer(delay,repeatCount); 
} 
uint 는 AS3 에 추 가 된 데이터 형식 으로 32 비트 의 정수(int)를 표시 합 니 다. 부호 가 있 는 정수 32 자 를 나타 낸다.Timer 의 구조 함 수 는 두 개의 매개 변 수 를 받 아들 입 니 다.delay. 예. “timer” 이벤트 지연 밀리초,repeat Count 순환 횟수 입 니 다.기본 값 은 0 입 니 다.즉,계속 순환 합 니 다. stop 혹은 reset 。

timer.addEventListener(TimerEvent.TIMER,timerHandler); 
timer.addEventListener(TimerEvent.TIMER_COMPLETE,timerCompleteHandler); 
timer 방송 두 이벤트,간격 delay 지정 한 밀리초 방송 1 회 “timer” 이벤트,반복 반복 Count 회 후 방송 “timerComplete” 사건

timer.start(); 
startBtn.getChildByName("btnText").text = " stop "; 
timer ...에 있다 start 이후 실행 시작,이때 running 속성 true 。손잡이 startBtn 으로 설정 “stop",주의 AS3 는 startBtn 의 child 를 가 져 올 수 없습니다.왜냐하면 Sprite 동적 클래스 가 아니 라 child 를 설명 할 수 없습니다.이때 startBtn 에 있 는 텍스트 상 자 를 가 져 오 려 면 사용 해 야 합 니 다. getChildByName 방법당연히 child 에 게 name 을 먼저 주어 야 합 니 다.

//function addBtn 
txt.name = "btnText"; 
마지막 stop 화해시키다 reset reset ...에 있다 stop 다음 currentCount 속성 설정 0 。통과 가능 마지막 으로 컴 파일 된 swf 체득 해 봐.
fla 파일 다운로드
플래시 애니메이션

좋은 웹페이지 즐겨찾기