<script language="JavaScript" type="text/JavaScript">
var banner=new Array();
banner[0]="<div style='width:426px;border:solid #dedede; border-width:1px 1px 1px 1px;'><embed width='426' height='104' src='/contents/banner/hauzen_kimyuna.swf'></embed></div>";
banner[1]="<div style='width:426px;border:solid #dedede; border-width:1px 1px 1px 1px;'><embed width='426' height='104' src='/contents/banner/ie8.swf'></embed></div>";
var random_banner=Math.floor(Math.random()*(banner.length));
</script>
<script>document.write(banner[random_banner]);</script>
Posted by 캠퍼스친구


간단한 사용법과 mmf 변환으로 휴대폰 벨 소리를 제작할 수 있습니다.

☞ 프로그램 간략 설명

NZellBell은 음악파일에서 벨소리용 파일(mmf)로 변환하여 핸드폰에서 사용하실수 있게 해드립니다.


☞ 프로그램 설명

엔젤벨(NZell Bell)은 음악파일을 벨소리용 파일인 mmf 파일로 자동으로 변환을 해주는
프로그램입니다.

엔젤벨은 사용자분들이 다운받은 음악파일에서 원하시는 구간을 추출하여 벨소리용 전용파일인 mmf 파일로 변환하여 벨소리로 사용하실수 있게끔 해드리는 프로그램으로 사용자분이 원하는 구간은 손쉽게 선택하실수 있도록 슬라이드 방식의 구간재생 및 변환기능이 있으며 벨소리의 재생 시간, 벨소리의 볼륨등을 설정하실수 있으며 그외에도 페이드 효과, 화음선택등의 옵션등을 선택하셔서 자신에 맞는 벨소리를 쉽고 편리하게 제작하실수 있게 해 드리고 있습니다.

또한 사용방법을 LCD창에 안내해드림으로서 초보자도 쉽게 사용이 가능합니다.

그외에도 궁금한 사항은 NZell 게시판을 통하여 사용자 분들끼리의 정보공유나 궁금증을 해결 하실수도 있습니다.

변환된 파일은 program files\\nzellbell 폴더 안에 .mmf 로 저장됩니다.


☞ 주요기능

1. 음악파일(mp3,wav,ogg,asf,wma,flac)을 벨소리(mmf)파일로 변환
2. 음악파일 재생
3. 선택구간 재생 및 변환

☞ 개선사항

1.볼륨조절기능 개선 - 볼륨을 낮출수있는 기능 추가
2. 페이드효과기능 개선 - 페이드효과시 노이즈발생 수정

☞ 실행 또는 설치방법

내려받은 파일을 실행하여 지시에 따라 설치하면 됩니다.
Posted by 캠퍼스친구

For 반복문

for 반복문 문법

for (초기값; 조건; 증감){

           // 반복 실행될 문장

}

 

‘for()’ 문 사용성 테스트

기억할 부분은 함수의 괄호와는 또 다른 ‘()’ 모양의 괄호를 사용하며, 괄호 안의 용법을 잘 숙지해야 합니다. ‘()’ 안에는 초기 조건 증감으로, 각 구분은 세미콜론(;)이 담당합니다.

 

다음은 디지털 문화 콘텐츠 100번 출력하는 예입니다.

for(var i=0; i<100; i++){

           trace(i+” 디지털 문화 콘텐츠”);

}

 

다음 코드를 입력하고 결과를 확인합니다.

서문 = new Array(

["홍길동", "슈퍼맨", "로보캅"],

["손오공", "아톰", "마징가젯"],

["그랜다이저", "모세", "요셉"],

["마리아", "마태", "요한"],

["다윗", "아담", "베드로"]);

for(var i=0; i<서문.length; i++){

           trace("서문["+i+"] : "+서문[i]);

}

‘for’ 문 안에 한계값을 ‘length’로 사용하는 이유는 만약 배열의 길이를 늘리게 되면 숫자 코드를 수정해야 합니다. 반대로 배열의 길이를 줄일 때도 역시 숫자 코드를 바꾸어 써주어야 합니다.

 

1차원 배열을 이용한 로보캅찾기

for(var i=0; i<서문.length; i++){

           if(서문[0][i] == “로보캅”){

                     trace(“찾았습니다.”);

                     trace(서문[0][i]);

                     trace(i);

                     break;

           }else{

                     trace(“찾지 못했습니다.”);

           }

}

2차원 배열 문법

for (var i=1; i<11; i++){

           for (var j=1; j<11; j++){

                     trace(j);

           }

}

 

2차원 배열을 이용한 로보캅찾기

for(var i=0; i<서문.length; i++){

           for(var j=0; j<서문[i].length; j++){

                     if(서문[i][j] == “로보캅”){                       

                                trace(i+””);

                                trace(j+””);

trace(“찾았습니다.”);

                                trace(서문[i][j]);

                                return;

                     }else{

                                trace(“찾지 못했습니다.”);

                     }

           }

}

 

 

Posted by 캠퍼스친구

배열(Array)

지난 시간 변수에 대해 공부했습니다. 변수는 값을 보관하기 위해 컴퓨터에 메모리를 할당하는 것이고, 변수명은 그 메모리공간을 지칭하는 별명이라고 이야기 했습니다. 만약 비슷한 이름의 변수를 100개를 만들어야 된다고 생각해 봅시다.

var 변수1

var 변수2

var 변수3

var 변수97

var 변수98

var 변수99

var 변수100

 

이렇게 선언을 해야 합니다.

그러나 오늘 배울 배열을 이용한다는 코드를 획기적으로 줄일 수 있습니다.

var 변수=new Array(100)

이렇게 선언하면 됩니다.

서문빌딩의 경우를 예로 들어 배열을 이해해 보도록 하겠습니다.

 

서문빌딩

서문빌딩은 5층 건물로 각층에 3개의 방이 있습니다. 그러니까 총 15개의 방이 있는 거죠. 신축한 건물인 서문빌딩은 아직 아무도 입주를 하지 않고 있습니다. 그런데 마침 홍길동이 등장했습니다. 홍길동은 분양사무실에 등록하고 0호 방에 입주하게 되었습니다. 서문빌딩에서 홍길동을 찾으려면 각 방마다 다 찾아봐야 하겠지만 분양사무실에 가면 금방 알 수 있습니다. 마침 미국에서 슈퍼맨이 입주하게 되었습니다. 슈퍼맨이 어디 있는지 알아보려면 분양사무실을 찾아가는 것이 가장 빨리 슈퍼맨을 찾는 방법이 될 것입니다.

이런 식으로 모든 방에 다 입주를 하게 되었습니다.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

홍길동

슈퍼맨

로보캅

손오공

아톰

마징가젯

그랜다이저

모세

요셉

마리아

마태

요한

다윗

아담

베드로

 

호텔의 명패를 보면 알기는 쉽지만 몇 층인지 알아보기 어렵습니다. 그래서 호텔에 맞게 변경하면 다음과 같습니다.

서문빌딩

0호 홍길동

1호 슈퍼맨

2호 로보캅

3호 손오공

4호 아톰

5호 마징가젯

6호 그랜다이저

7호 모세

8호 요셉

9호 마리아

10호 마태

11호 요한

12호 다윗

13호 아담

14호 베드로

 

이 빌딩은 이렇게 5층의 3개 방으로 구성되어 있습니다.

이것은 프로그램적으로 바꾸면 다음과 같습니다.

0호 홍길동 → [0] = “홍길동” → 서문[0] = “홍길동”;

 

서문빌딩

서문[0] = “홍길동

서문[1] = “슈퍼맨

서문[2] = “로보캅

서문[3] = “손오공

서문[4] = “아톰

서문[5] = “마징가젯

서문[6] = “그랜다이저

서문[7] = “모세

서문[8] = “요셉

서문[9] = “마리아

서문[10] = “마태

서문[11] = “요한

서문[12] = “다윗

서문[13] = “아담

서문[14] = “베드로

 

 

행렬의 등장 (층은 행, 호는 열이다)

위처럼 변화시킬 수도 있지만 좀 더 분명한 방법을 택해 봅니다. 보통 층을 셀 때는 제일 아래부터 세어 가지만 프로그래밍에서는 반대로 제일 위에서부터 세어 나갑니다. 이것은 우리가 순서대로 번호를 붙일 때와 마찬가지입니다.

플래시에서도 배열에서는 이렇게 사용됩니다. 좀 더 분명한 형태로 하면 몇 층의 몇 호에 누가  있다.’ 라는 말을 몇 행의 몇 번째에 누가 있다.’ 라는 말로 바꾸면 됩니다.

층과 호를 구분해서 나타내면 다음과 같습니다.

 

서문[0]

[0] = “홍길동”;

[1] = “슈퍼맨”;

[2] = “로보캅”;

서문[1]

[0] = “손오공”;

[1] = “아톰”;

[2] = “마징가젯”;

서문[2]

[0] = “그랜다이저”;

[1] = “모세”;

[2] = “요셉”;

서문[3]

[0] = “마리아”;

[1] = “마태”;

[2] = “요한”;

서문[4]

[0] = “다윗”;

[1] = “아담”;

[2] = “베드로”;

 

보통 사람을 찾을 때 몇 층의 몇 호라고 이야길 하기 때문에 이렇게 작성하는 것이 더 자연스럽습니다. , 이제 층이라는 말과 호를 빼고 행과 열로 대체 한다면 다음과 같습니다.

 

서문[0]

[0] = “홍길동”;

[1] = “슈퍼맨”;

[2] = “로보캅”;

서문[1]

[0] = “손오공”;

[1] = “아톰”;

[2] = “마징가젯”;

서문[2]

[0] = “그랜다이저”;

[1] = “모세”;

[2] = “요셉”;

서문[3]

[0] = “마리아”;

[1] = “마태”;

[2] = “요한”;

서문[4]

[0] = “다윗”;

[1] = “아담”;

[2] = “베드로”;

 

, 이제 어디에 누가 있는 지 알아보려면 분양사무실에 다음과 같이 문의해 볼 수 있습니다.

거기 서문빌딩이죠?”

그 빌딩 32호에 누가 있습니까?”

자 이 말을 프로그램적으로 바꾸면 어떻게 될까요? 다음과 같이 기술할 수 있습니다.

서문[3][2];

서문[3][2]’ 라고 분양사무실에 문의합니다. 그러면 3 2호에 누가 있는지 알 수 있습니다.

이와 같이 같은 이름에 여러 개의 변수를 사용할 때 배열을 이용할 수 있습니다.

 

myArray:Array = new Array();

myArray.push("one");

myArray.push("two");

myArray.push("three");

trace(myArray);

 

 

myArray:Array = ["one", "two", "three"];

trace(myArray);

 

 

var names:Array = new Array(3);

trace(names.length); // output: 3

trace(names[0]); trace(names[1]);

race(names[2]);

 

 

names:Array = new Array("John", "Jane", "David");

trace(names.length);

trace(names[0]);

trace(names[1]);

trace(names[2]);

 

 

var myArray:Array = new Array(["홍길동","슈퍼맨","맹자"],["공자","논어","주역"]);

trace(myArray[1][1]);

Posted by 캠퍼스친구
Mouse events have changed dramatically in AS 3. In AS 2, movie clips were automatically listeners for all mouse events. Now any object has to specifically add itself as a listener for them. Also, for mouse events to fire in AS 3, it is required that the mouse cursor is over some visible content of the display object. This is different than in AS 2, where mouseUp, mouseDown, and mouseMove would fire for every movie clip no matter where the mouse cursor was located. The mouseUp and mouseDown events are now equivalent to onPress and onRelease from AS 2.

Mouse event names are defined by strings, but as mentioned earlier, it is better to use properties of the MouseEvent class to guard against errors. Here are the available mouse event properties of the
 MouseEvent class:

  • CLICK
  • DOUBLE_CLICK
  • MOUSE_DOWN
  • MOUSE_MOVE
  • MOUSE_OUT
  • MOUSE_OVER
  • MOUSE_UP
  • MOUSE_WHEEL
  • ROLL_OUT
  • ROLL_OVER

These properties are pretty self-explanatory. To get a feel for them, you can create and compile the
following class, which will trace each mouse event as it occurs on the sprite it creates:

package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    public class MouseEvents extends Sprite {
        public function MouseEvents() {
            init();
        }

        private function init():void{
            var sprite:Sprite = new Sprite();
            addChild(sprite);
            sprite.graphics.beginFill(0xff0000);
            sprite.graphics.drawCircle(0, 0, 50);
            sprite.graphics.endFill();
            sprite.x = stage.stageWidth / 2;
            sprite.y = stage.stageHeight / 2;
            sprite.addEventListener(MouseEvent.CLICK, onMouseEvent);
            sprite.addEventListener(MouseEvent.DOUBLE_CLICK, onMouseEvent);
            sprite.addEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent);
            sprite.addEventListener(MouseEvent.MOUSE_MOVE, onMouseEvent);
            sprite.addEventListener(MouseEvent.MOUSE_OUT, onMouseEvent);
            sprite.addEventListener(MouseEvent.MOUSE_OVER, onMouseEvent);
            sprite.addEventListener(MouseEvent.MOUSE_UP, onMouseEvent);
            sprite.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseEvent);
            sprite.addEventListener(MouseEvent.ROLL_OUT, onMouseEvent);
            sprite.addEventListener(MouseEvent.ROLL_OVER, onMouseEvent);
        }
        public function onMouseEvent(event:MouseEvent):void{
            trace(event.type);
        }
    }
}

Note that the class uses the same handler for every event type, and simply traces the type of the event
that has been dispatched.

Posted by 캠퍼스친구

ND3D AS3 3D Engine

ND3D is a simple to use AS3 3D Engine. Aimed for speed and simplicity. Target use are small 3D effects and rapid 3D testing / prototyping. The compiled size of the engine is about 10k.

Download: ND3D V 0.1 | Project at GoogleCode| API Documentation (Beta): Launch

Features:

  • Wireframe rendering
  • Bitmap textures
  • Basic dynamic lighting
  • Additive blending for materials
  • Distance blur for meshes
  • 3D sprites
  • ASE mesh loader
  • Custom renderer
  • Built in primitives (plane, cube, sphere)
  • Vertexcleaner, Normalsflipper

Materials (Bitmap & Additive)

Additive Rendering (Meshes & 3D Sprites)

Blur & CustomRenderer

Dynamic Meshes & MeshExtrudeTest

ASE mesh loading and simple camera follower

Posted by 캠퍼스친구

플래시 플레이어 ActiveX를 삭제하려면 첨부된 파일을 실행시켜야 한다.

Posted by 캠퍼스친구

액션스크립트 3.0 한글 레퍼런스
http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/

Posted by 캠퍼스친구

onClipEvent 핸들러

무비클립을 통한 이벤트를 지정할 땐 onClipEvent 핸들러를 사용합니다.





onClipEvent(movieEvent:Object) { // your statements here }

특정 무비 클립 인스턴스에 대해 정의된 액션을 트리거합니다.

지원 버전: Flash Player 5; ActionScript 1.0

매개 변수(이벤트)

movieEvent:Object - movieEvent이벤트라고 하는 트리거입니다. 이벤트가 발생하면 중괄호({}) 안에서 그 다음의 명령문이 실행됩니다. movieEvent 매개 변수에는 다음과 같은 값이 지정될 수 있습니다.

  • load: 무비 클립이 인스턴스화되는 대로 액션이 시작되고 타임라인에 나타납니다.
  • unload: 무비 클립이 타임라인에서 제거된 후 첫 프레임에서 액션이 시작됩니다. Unload 무비 클립 이벤트와 관련된 액션은 영향을 받는 프레임에 첨부된 다른 액션보다 먼저 처리됩니다.
  • enterFrame: 무비 클립의 프레임 속도로 액션이 계속 트리거됩니다. enterFrame 클립 이벤트와 관련된 액션은 영향을 받는 프레임에 첨부된 프레임 액션보다 먼저 처리됩니다.
  • mouseMove: 마우스가 이동할 때마다 액션이 시작됩니다. _xmouse_ymouse 속성을 사용하여 현재 마우스 위치를 파악합니다.
  • mouseDown: 왼쪽 마우스 버튼을 누르면 액션이 시작됩니다.
  • mouseUp: 왼쪽 마우스 버튼을 놓으면 액션이 시작됩니다.
  • keyDown: 키를 누르면 액션이 시작됩니다. 마지막으로 눌린 키에 대한 정보를 보려면 Key.getCode()를 사용합니다.
  • keyUp: 키를 놓을 때 액션이 시작됩니다. 마지막으로눌린 키에 대한 정보를 보려면 Key.getCode() 메서드를 사용합니다.
  • data: loadVariables() 또는 loadMovie() 액션에서 데이터를 수신할 때 액션이 시작됩니다. loadVariables() 액션이 지정된 경우 data 이벤트는 마지막 변수가 로드될 때 한 번만 발생합니다. loadMovie() 액션이 지정된 경우 data 이벤트는 각 데이터 섹션이 검색될 때 반복적으로 발생합니다.

예제

다음 예제에서는 onClipEvent()keyDown 무비 이벤트와 함께 사용하며, 이를 무비 클립이나 버튼에 첨부하고자 합니다. keyDown 무비 이벤트는 보통 Key 객체의 하나 이상의 메서드 및 속성과 함께 사용됩니다. 다음 스크립트는 Key.getCode()를 사용하여 사용자가 어떤 키를 눌렀는지 확인합니다. 사용자가 누른 키가 Key.RIGHT 속성과 일치하는 경우 재생 헤드는 다음 프레임으로 이동합니다. 사용자가 누른 키가 Key.LEFT 속성과 일치하는 경우에는 재생 헤드가 이전 프레임으로 이동하게 됩니다.

onClipEvent (keyDown) {
 if (Key.getCode() == Key.RIGHT) {
 this._parent.nextFrame();
 } else if (Key.getCode() == Key.LEFT) {
 this._parent.prevFrame();
 }
}

다음 예제에서는 onClipEvent()loadmouseMove 무비 이벤트와 함께 사용합니다. _xmouse 및 _ymouse 속성은 마우스가 움직일 때마다 마우스의 위치를 추적합니다. 마우스의 위치는 런타임 동안 만들어지는 텍스트 필드에 표시됩니다.

onClipEvent (load) {
 this.createTextField("coords_txt", this.getNextHighestDepth(), 0, 0, 100, 22);
 coords_txt.autoSize = true;
 coords_txt.selectable = false;
}
onClipEvent (mouseMove) {
 coords_txt.text = "X:"+_root._xmouse+",Y:"+_root._ymouse;
}
Posted by 캠퍼스친구

on 핸들러

버튼심벌이나 버튼으로 활용하고자 하는 무비클립에 지정하여 사용하는 on핸들러에 대해 
알아봅니다.

코드입력법 :
on(mouseEvent:Object) { // 실행문
}

액션을 트리거하는 마우스 이벤트나 키 누르기를 지정합니다.

지원 버전: Flash Player 2; ActionScript 1.0

매개 변수(이벤트)

mouseEvent:Object - mouseEvent이벤트라고 하는 트리거입니다. 이벤트가 발생하면 중괄호({ }) 안에서 그 다음의 명령문이 실행됩니다. mouseEvent 매개 변수에는 다음과 같은 값이 지정될 수 있습니다.

  • press: 포인터가 버튼 위에 있을 때 마우스 버튼을 누릅니다.
  • release: 포인터가 버튼 위에 있을 때 마우스 버튼을 놓습니다.
  • releaseOutside: 포인터가 버튼 위에 있을 때 마우스 버튼을 누른 다음 해제하기 전에 버튼 영역 외부로 벗어납니다. pressdragOut 이벤트는 모두 항상 releaseOutside 이벤트보다 우선합니다.
  • rollOut: 포인터가 버튼 영역 외부로 벗어납니다.
  • rollOver: 마우스 포인터가 버튼 위로 들어옵니다.
  • dragOut: 포인터가 버튼 위에 있을 때 마우스 버튼을 누른 다음 포인터가 버튼 영역 외부로 벗어납니다.
  • dragOver: 포인터가 버튼 위에 있는 동안 마우스 버튼을 누르고 포인터가 버튼 밖으로 벗어난 후 다시 버튼 위로 돌아옵니다.
  • keyPress "< key >": 지정된 키보드 키를 누릅니다. 매개 변수의 key 부분에 액션 패널의 코드 힌트에 표시된 대로 키 상수를 지정합니다. 이 매개 변수를 사용하여 키 누름을 해석합니다. 즉 지정된 키의 내장된 비헤이비어를 무시합니다. 버튼은 응용 프로그램에서 스테이지 안팎 모두에 있을 수 있습니다. 이 방법에는 런타임 시에는 on() 핸들러를 적용할 수 없다는 제한 사항이 있습니다. 이는 제작 시에 적용해야 합니다. 컨트롤 > 키보드 단축키 사용 안 함을 선택했는지 확인하십시오. 그렇지 않으면 컨트롤 > 무비 테스트를 사용하여 응용 프로그램을 테스트할 때 내장된 비헤이비어가 있는 특정 키를 무시할 수 없습니다.

키 상수 목록은 Key 클래스를 참조하십시오.

예제

다음 스크립트에서 startDrag() 함수는 마우스를 누를 때 실행되고 조건 스크립트는 마우스를 놓고 객체가 드롭될 때 실행됩니다.

on (press) {
 startDrag(this);
}
on (release) {
 trace("X:"+this._x);
 trace("Y:"+this._y);
 stopDrag();
}
Posted by 캠퍼스친구