토글 - 나머지 연산자 모듈러스 연산자는 나머지를 구하기 때문에 나눠지는 대상을 넘어설 수 없다. 값이 미만으로 나오기때문에. 예를 들어 2를 % 했을때 나올 수 있는 값은 0,1 뿐이다. 이것을 토글에 응용하면 다음과 같다. import flash.events.MouseEvent; import caurina.transitions.Tweener; var count:int = 0; _btn.addEventListener(MouseEvent.CLICK, calFn) function calFn(e:MouseEvent){ count++; if( (count % 2) == 0 ){ Tweener.addTween(rec_mc,{rotationX:0, time:2, transition:"easeOutExpo"}); ..
토글 - Boolean Toggle Boolean형 데이터에 false와 true를 번갈아 가면서 값을 대입하여 토글 기능을 구현하는 방법. import caurina.transitions.Tweener; import flash.events.MouseEvent; var isClicked:Boolean; btn.addEventListener (MouseEvent.CLICK, rotationHandler); function rotationHandler (e:MouseEvent) { isClicked = ! isClicked; if (isClicked) { Tweener.addTween (ball_mc,{rotationY:180, time:2, transition:"easeOutExpo"}); } else {..
10미만 0 붙이기 AS3.0에서는 데이터 형 변환까지 고려해서 아래와 같이.var _duration:Number = 39.9; var _time:Number = 5.23; trace(itostr(_time) + ":" + itostr(_duration)); //05:39 function itostr($num:Number):String{ var numInt:int = int(Math.floor($num)); var str:String = String(numInt < 10 ? "0" + numInt : numInt); return str; } 8 : Math.floor로 내림처리, Number를 int로 데이터 형변환. 9 : 10미만인지 검사, int를 String으로 데이터 형변환. 10 : 최종 값인..
for, while, do~while 세가지 반복문의 쓰임새 세가지 모두 반복을 하는 반복문이지만 형식이 약간 다르다. 각각의 차이가 있으므로 적재적소에 알맞게 구성하는것이 효율적이다. 1. for문 정해진 범위가 있을 경우 가장 적합하다. for문을 쓸 경우 반복루프 안에서 탈출(break)을 하는 경우가 많지않다. 학생들의 평균값, 정해진 배열에 일괄적으로 조작 등 미리 정해진 횟수만큼 반복할때 가장 적합하다. 또한 for문의 구성식이 "초기값+조건식+증가값" 으로 첫줄에 표기되어있어서 한눈에 흐름을 파악하기가 쉽다는 장점이있다. 2. while문 반복되는 조건식만 가지고있다. while은 내부에서 조건식에 대한 참/거짓을 판별하도록 해야한다. 즉 for문 과 같이 정해진 범위가 없기때문에 언제 발생..
색상의 알파값(투명도) 16진수계산 액션스크립트나 자바스크립트 여타 프로그래밍에서 16진수로 알파값이 포함될때가 있다. 액션스크립트 기준으로 Bitmap객체를 잠시 설명하면 매개변수가 다음과 같은 차례를 가진다. width, height, transparnet:Boolean(투명도지원여부), fillColor(기본값은0xFFFFFFFF 흰색) ㅎ 예1 ) 300 x 300 크기의 불투명 빨간색 BitmapData객체를 만들면 다음과 같다.var bmpData:BitmapData = new BitmapData(300, 300, false, 0xFF0000); //여기까지는 이해가능 예2 ) 100 x 100 크기의 투명도가 50%인 빨간색 BitmapData객체는 다음과 같다.var bmpData:Bitm..
화승그룹 역사관 사이트 작업의 마지막 수정부분인 "마우스 활성화 제한" 에서 1시간 반 가량을 삽질. 메서드 두개만 제대로 잡아주면 끝날문제를 하마터면 엄청 길게 해결 할 뻔했다. 문제의화면) 뒷부분의 비활성화된 썸네일은 마우스 반응에서 제외되어야한다. 문제의부분) thumb_mc.mouseEnabled = false; 가 먹히지 않아 갖은 삽질을 함. 아래와 같이 A 사각형 안에 B 사각형이 있다. (둘다 무비클립) A는 버튼 모드 이지만 다시 A.mouseEnabled = false를 실행하여 마우스반응에서 제외시켰다. 그러나... B사각형에 마우스를 가져가면 여전히 버튼모드가 활성화 되고, A의 리스너였던 click이벤트도 B사각형을 클릭하면 실행된다. 당연히 A,B 둘다 동시에 해제시키면 된다. ..
3.0에서는 버튼 오브젝트 위로(depth) 오브젝트가 쌓이면 포커스를 잃게되어 동작을 하지않는다. 이론상으로는 이게 맞는데 기존(2.0) 방식을 떠올려보면 헷갈리는 부분이 있어서 정리해둔다. 2.0) "depth0"이 버튼이고, "depth1"이 위에 있는 상황. 상위 뎁스에있는 객체를 눌러도 있건 말건 아래 뎁스객체가 동작한다. 3.0) "depth0"이 버튼이고, "depth1"이 위에 있는 상황. 겹치는 부분은 인식을 하지 못한다.
ActionScript 3.0나 php에서는 function의 parameter value도 default로 define할 수 있다. 굳이 매개변수를 넣지 않더라도 기본값을 할당해 줄 수 있다는 뜻이다. example 1)function myA(a:int=10,b:int):int{ return a; } myA라는 함수를 호출하는 코드를 작성하면 대략 myA(100,100) 정도가 될 것이다. 그런데 함수를 보면 굳이 값을 넣어주지 않아도 되는 선택매개변수(a)가 앞에 있고, 필수매개변수(b)가 2번째 일경우에 myA(100) 처럼 사용한다면 처음값이 어떤값(a인지 b인지)에 해당하는지 판단을 할 수 없어서 논리적 오류가 발생한다. 컴파일 에러는 다음과 같다. required parameters are n..
프레임제어할때 왕복모션이 있을경우 좌,우 버튼을 누르면 (녹색버튼클릭) 1프레임의 stop으로 인해, 왕복제어가 안될경우가 있다. 버튼제어부)/* 원인:첫프레임에 stop이 걸려있어서 gotoAndPlay(1)실행후 > stop이 실행됨. 해결:gotoAndPlay(2)로 우회하거나 원래의 근본적인 해결은 모션이 정지하고 gotoAndStop(1)로 되돌리는 것. */ btn1.addEventListener(MouseEvent.CLICK, move1); function move1(e:MouseEvent){ mc2.gotoAndStop(1) mc2.gotoAndPlay("move_left") } btn2.addEventListener(MouseEvent.CLICK, move2); function move2..
MVC(Model-View-Controller) 디자인 패턴의 이해와 활용 MVC 패턴의 이해 1. 이 글은 누구를 위한 무엇인가 본 글은 디자인 패턴에 대해 이해는 하고 있으나 실제 작업에서 어떻게 활용해야 하는지 부담을 느끼는 독자들에게 도움이 될 것이다. 개별 패턴에 대한 이해를 목적으로 제작된 디자인 패턴 관련 서적은 시중에 많다. 그러나 개별 디자인 패턴들을 이해하더라도 실제 작업에서 활용할 수 없다면 효율적으로 프로그래밍을 하는 데 큰 도움을 주지 못할 것이다. 이 글에서는 이러한 접근을 지양하고 MVC 패턴을 활용해 봄으로써 디자인 패턴을 왜 사용하는지에초점을 두고 설명한다. OOP 언어에서 디자인 패턴을 꽃이라고 한다면 MVC(Model-View-Controller) 패턴은 꽃다발이라고 할..
Single-table syntax:DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] Multiple-table syntax:DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*]] ... FROM table_references [WHERE where_condition] Or:DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*]] ... USING table_references [WHERE where_condition]..
Single-table syntax:UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] Multiple-table syntax:UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] 쿼리 명령을 실행하려면, 1, [전체관리]→[DB관리]→[테이블 관리] 페이지에서 우측프레임 ..