go to php / flash action / english dictionary

 회원가입 |  로그인

{for 문을 이용한 버튼 제어}
( home ) 2005-06-29 08:42:11

각각의 버튼을 클릭했을때 어떤 버튼을 눌렀는지 버튼 번호를 알아 내는 방법으로 배열같은걸 써서 저장해서 가져올 필요는 없습니다. 그리고 배열로 써도 소용이 없죠.. 어차피 i의 값은 10일테니까요...

이때 가장 유용한 키워드가 바로 this 입니다.
for 문을 통해서 9개의 버튼에 이벤트가 선언이 되어 있기 때문에 this라고 하는 자기자신을 가르키는 공통적인 액션이 들어가게 되면 각 버튼 인스턴스 자신을 가르키게 됩니다.

for (i=1; i<=9; i++) {
 _root["b"+i].onPress = function(){
  trace(this._name)
 }
}

위와 같이 주고서 각 버튼을 클릭하면 클릭한 버튼의 인스턴스 네임을 받아 오게 됩니다. 즉 b1, b2, b3,.....b9 가 각각 나오게 되죠...

이것을 이용해서 지금 클릭해서 누른 버튼에 어떠한 작동을 하게 끔 모두 할수 있습니다. 구지 숫자만 따오고싶다면... String 오브젝트 관련 메서드를 사용해서 숫자만 따올수 있습니다.

this._name.substr(2,1) 이렇게 해주면 1,2,3....9 이렇게 가져올수도 있습니다.

-------------------------------------------------------------
(질문답 게시판에서 다음과 같이 적용될 경우에 대해 답변했던 내용입니다.)

음... 근데 지금 구현하고자 하는것은 구지 각 버튼의 번호를 가지고와서 그번호로 핸들링할 필요까지두 없는듯 합니다.
롤오버했을때 targetFrame(8)이 각각의 버튼에 적용이 되고 롤아웃되면 targetFrame(1)이 적용이 되도록하려는 것이고... 그담에 버튼을 클릭하면 클릭한 놈만 버튼이 비활성화 되면되는거죠...그리고 다른 버튼을 클릭하면 클릭한 버튼외의 나머지중에서 비활성화 되어 있는것은 다시 활성화 시키구요....

다음과 같이 해보세요....

for (i=1; i<=9; i++) {
 _root["b"+i].onRollOver = function(){
  this.targetFrame(8)
 }
 _root["b"+i].onRollOut = function(){
  this.targetFrame(1)
 }
 
 _root["b"+i].onPress = function(){
  for(z in _root){
   _root[z].enabled = true
  }
  this.enabled = false
 }
}


위와 같이 하면 완벽하게 구현될겁니다.
롤오버 롤아웃은 위에서 설명한거와 같이 될테구요...
Press 이벤트만 주목하시면되겠네요.. 버튼을 비활성화 시키는 액션으로 enabled 가 있습니다. 해당 버튼을 눌렀을때 일단은 모든 버튼을 활성화 시킨후에 자기 자신만 비활성화 시키면 간단하겠죠...

for(z in _root){
 _root[z].enabled = true
}

이 구문은 for-in Loop 문입니다. _root 상에 있는 모든 변수, 이벤트, 인스턴스들을 다 검색해서 enabled 속성을 지정할수 있는 놈들만 적용이 되도록 하는것이죠...

http://club.jungle.co.kr/source/clubMain/club_default.asp?club_idx=353

정글 FAS라는 클럽에서 퍼왔숨 아는 사람 이름도 보이드만



  목록

 플래시 게시판 소스 
 플래시 게시판 [2]
 ㅅㄷㄴㅅ  비밀글입니다  : E
 플래시 마우스 오른쪽 금지    : 수학/물리
 unloadMovieNum (eng ver.)    : U
 loadMovieNum (eng ver.)    : L
 탄력적인 움직임 소스    : 액션모듬
 hitTest    : H
 플래시 액션스크립트 모음    : 액션모듬
 메뉴 묶기    : 액션모듬
 3초후에 다음프레임으로 이동    : 액션모듬
 .  비밀글입니다  : operators
 study    : 액션모듬
 플래시 검색엔진 만들기    : 액션모듬
 prototype    : P
 onMouseDown    : O
 onMouseMove    : O
 마우스 커서 숨기기 Mouse.hide();    : M
 플래시 동영상    : 액션모듬
 getDepth    : G
 거꾸로 재생되는 무비    : 액션모듬
 swapDepths    : S
 마우스 오른쪽 메뉴수정하기 - ContextMenu    : 액션모듬
 마우스 over 재생 out 역재생    : 액션모듬
 charCodeAt    : C
 전역 속성    : 액션모듬
 charAt    : C
 플래시 풀스크린창 최소화하는 버튼    : 액션모듬
 #include 지시문    : #
 #endinitclip 지시문    : #
 #initclip 지시문    : #
 enterFrame (이벤트)    : E
 *-1 로 토글버튼만들기    : 액션모듬
 플래시 인트로.. [1]   : 액션모듬
 clearInterval()    : C
 setInterval()    : S
 숫자묶기    : 액션모듬
 슬라이드 메뉴    : 액션모듬
 무비클립 인스턴스네임    : 액션모듬
 연산자 new    : N
 onMouseUp (이벤트)    : O
 예약어 _global 전역함수    : G
 서브메뉴의 현재위치 표시 [1]   : 액션모듬
 슬라이드 메뉴    : 액션모듬
 getBytesLoaded    : G
 getBytesTotal    : G
 스크롤 올리기내리기버튼    : 액션모듬
 선을 복사해서 그림그리기    : 액션모듬
 마우스를 부드럽게 따라다니는 무비클립    : 액션모듬
 눈내리기    : 액션모듬
 외부음악 부르기 간단    : 액션모듬
 플래시에서 배경음악 차례로 골라듣기..(외부음악 이용) [1]   : 액션모듬
 핸드커서 안보이기    : 액션모듬
 즐겨찾기버튼    : 액션모듬
 플래시 간단시계    : 액션모듬
   [re] 플래시 시계 시분초    : 액션모듬
 랜덤으로 파일부르기    : 액션모듬
 플래시 투명    : 액션모듬
 플래시로 전체창    : 액션모듬
 한글이 깨질때    : 액션모듬
 loading 바와 100% 보여주기 액션    : 액션모듬
 TextField.borderColor    : T
 colorchange    : 액션모듬
 사운드 볼륨조절 사용예제    : 액션모듬
 Math 함수    : M
 for 문을 이용한 버튼 제어    : 액션모듬
 onKillFocus    : O
 tabIndex    : T
 onSetFocus    : O
 loadVariablesNum    : L
 XML(object) -2    : X
 XML(object) -1    : X
 _x    : X
 with    : W
 var    : V
 _url    : U
 updateAfterEvent    : U
 unloadMovie    : U
 unescape(최상위레벨 함수)    : U
 typeof    : T
 trace    : T
 _totalframes    : T
 toggleHighQuality    : T
 this    : T
 tellTarget    : T
 targetPath    : T
 _target    : T
 substring    : S
 String(object)    : S
 " "    : S
 String(function)    : S
 stopDrag    : S
 stopAllSounds    : S
 stop    : S
 startDrag    : S
 _soundbuftime    : S
 Sound(object)    : S
 setProperty    : S
 set    : S
 Selection(object)    : S

    목록            1 [2][3]

Copyright 1999-2018 Zeroboard / skin by Yoojunge