플래시에서 오른쪽 버튼 누르게 되면 플래시의 고정된 컨텍스트 메뉴가 뜨는데, ContextMenu 객체를 이용해 이 항목들을 변경 할 수 있습니다. 참고로, ContextMenu 클래스는 final 로 선언되어 있어 더 이상 확장할 수 없습니다. 여기 예제는 사각형에 2개의 메뉴를 추가하여 컨텍스트 메뉴를 변경한 간단한 코드 입니다. 아래 코드가 바로 sprite 객체와, 메뉴 항목을 컨텍스트 클래스로 넘겨주어 생성하는 부분입니다. new CustomContextMenu(sprite, menuItems); CustomContextMenu 클래스를 보면 어떻게 등록하고 변경하는지 알 수 있습니다. Adobe ActionScript3.0 Language Reference 에서 ContextMenu 클래스의 ..
작년 이맘때쯤 정규식으로 URL 추출하기를 포스팅 했었는데, 사실 당시 정규식으론 많은(..) 문제점이 있었습니다. -_-; 그리하여 개선을 하려고 했으나 이러저라한 일에 밀리다보니 어느덧 ;; 이번엔 좀더 정확한 결과를 얻을 수 있는데에 초점을 맞추고 작성하였습니다. 기존의 문제점이었던 HTML 페이지내 URL 과 DOM 객체 이름들이 잘못 검출되는 문제도 수정되었습니다. URL과 같은 DOM 이름이 아니라면 대부분 올바르게 검출될겁니다. 기존에는 단순화 하면서 단일 함수로 만들었었는데, 정규식을 다양하게 활용하기 위해 자바스크립트의 클래스로 만들었습니다. 소스코드를 보시려면 아래의 소스코드 화면에서 오른쪽 상단의 아이콘에서 소스코드 보기를 눌러 보시면 쉽게 확인 가능합니다. 버그 및 문의는 댓글을 남..
플래시에서는 마이크(Microphone) 및 카메라(Camera)를 컨트롤 할 수 있는 클래스를 지원해줍니다. 이를 이용해서 마이크와 카메라로부터 정보를 입력 받아 이용할 수 있죠. 다만, 몇가지 제약사항이 있으니 주의하여야 합니다. 우선 부터 Microphone 클래스의 getMicrophone() 메소드를 이용해 인스턴스를 가져올 수 있지만, 파일로 저장하기 위해서는 AIR 2.0 API 를 이용해서 작성하여야 합니다. Adobe LiveDoc 의 Microphone 클래스에 간단한 예제가 있습니다. (이 예제를 실행하면 마이크 및 카메라 접근 허용을 묻는 창이 뜨게 됩니다. 허용을 해야 마이크를 사용할 수 있게 됩니다.) /** * MicrophoneExample.as * @see http://he..
액션스크립트 3.0(ActionScript 3.0)에서는 기본적으로 객체는 참조(Reference)로 값을 받게 됩니다. 그래서 이점을 간과하면 예상치 못한 결과를 얻게 되죠! 아래의 예에서, 배열 A 에 B 를 넣고, 배열 B 에 새로운 값을 추가했는데 배열 A 도 변화가 된걸 알 수 있습니다. 이것이 배열 B 가 배열 A 를 참조하고 있기 때문이죠. var A:Array = new Array(); A.push(1); var B:Array; B = A; B.push(2); trace(A);// 결과: 1, 2 trace(B);// 결과: 1, 2 이런 문제 때문에 객체(Object)의 경우 따로 clone() 함수를 만들어서 쓰기도 하는데, 배열의 경우엔 따로 함수를 만들지 않고도 concat() 함수..
jQuery 를 이용하면 여러 객체에 쉽게 접근이 가능한데, 폼 객체의 값들을 읽거나 설정하는데는 약간 헷갈리는 부분이 있습니다. 그건 각 폼 객체들이 약간씩 다른 동작을 하기 때문인데, 단순한 폼 뿐이라면 그냥 ID 를 지정하고 바로 접근하는게 아주 쉽고 빠릅니다. 하지만, 동일한 폼이 여러개 생긴다거나 동적으로 생성되거나 하는 경우 골치아파질 수 있습니다. 다행이도 jQuery 는 이런 접근을 아주 쉽게 도와줍니다. 바로 [ ] 표현식으로 쿼리를 지원하기 때문에 간단한 표현식으로 원하는 결과를 얻을 수 있는데, 폼 객체를 이를 이용해서 셀렉트 하는 방법이 있습니다. 여기서 Year 텍스트 필드의 값을 가져오고자 할때 아래와 같이 작성할 수 있습니다. $("#TestForm > input[name='T..
개요 Timer 객체의 timer 이벤트 발생시 콜백 함수에서 Timer 객체의 currentCount 가 repeatCount 와 같을때 stop() 메소드를 사용하는 경우 Tick 함수가 완전히 끝나기 전에 timerComplete 이벤트가 발생됩니다. 일정 시간마다 반복되는 작업을 하기위해 Timer 객체를 사용하는데, Timer 객체에 이벤트를 등록하면 일정시간마다 timer 이벤트가 발생됩니다. Timer 객체가 지정된 횟수만큼 모두 실행이 되면 TIMER_COMPLETE 이벤트가 발생됩니다. 코드 var A:Timer = new Timer(500, 2); A.addEventListener(TimerEvent.TIMER, A_onTick) A.addEventListener(TimerEvent.T..
템플릿을 위한 간단한 부분 캡쳐[BLOCK] 과 [ENDBLOCK] 으로 둘러 쌓인 곳을 캡쳐하여, test_1 이라는 이름으로 반복문을 돌릴 경우 입니다. test_1 은 변수명이 되는게 가장 수월하겠죠. 해당 변수의 배열만큼 반복문을 돌리는 것입니다. 이렇게 구문이 확연히 나눠져 있다면 캡쳐하는 것은 그리 어렵지 않습니다. 반대로 HTML 같이 여러 태그가 중첩되거나 중복되게 되면 복잡해 지죠. 왜냐하면 HTML 에서 끝나는 테그는 단지 테그명만 명시되어 있어 알기가 어렵습니다. 테그와 짝을 이루는 것이 어떤 테그인지 알기 위해서는 HTML 테그들을 분석해봐야 합니다. $str = " [BLOCK test_1] TEST [ENDBLOCK test_1] "; preg_match('!\[(BLOCK)[\..
PHP 함수에서 소켓통신을 할 경우, 코드는 정상적으로 작동되는 것 같은데 간혹 특정 페이지나 특정 위치의 내용이 짤리는 경우가 있습니다. 소켓 통신으로 결과를 잘 받았더라도 출력시 중간에 글자가 잘리기 때문에 받는 도중 무언가 문제가 있다고 오해해서 문제 없는 코드만 하염없이 분석하다 지치게 되죠; 이런 경우 인코딩이 EUC-KR 이기 때문에 발생하는 경우가 대부분 입니다. 따라서, 인코딩이 문제가 없다면(EUC-KR 이 아니면) 프로그래밍 코드에 문제라고 보면 되겠죠.. 해결 방법은 EUC-KR 보다도 CP949 인코딩을 사용하면 됩니다. CP949 는 EUC-KR 과 완벽히 호환되면서 EUC-KR 이 표현하지 못하는 몇몇 글자들을 표현이 가능합니다. 예를 들어 EUC-KR 인코딩의 내용을 UTF-8..
- Total
- Today
- Yesterday
- game
- 블레이드앤소울
- ActionScript3.0
- 팁
- eve online
- 프로그래밍
- 스크린샷
- 게임
- 정규표현식
- php
- 보안
- 플래시
- 세비지2
- 유틸리티
- flash
- It
- 액션스크립트3
- dust 514
- 이브 온라인
- 해킹
- 정규식
- 보안정보
- PCRE
- Utilities
- as3
- 정보
- 자바스크립트
- 스타크래프트2
- 팁&정보
- JavaScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |