라이브러리에 있는 무비클립에 클래스를 연결(linkage) 시켜 화면에 표현하고 마우스 클릭으로 컨트롤 하는 샘플이다. 기존의 'attachMovie'를 이와 같이 클래스로 연결하여 'addChild()'로 표현이 가능해 졌다.
2.0에서의 클래스 연결과 'attachMovie()'를 사용하여 표현했던 것을 클래스와 클래스로 연결하는 방법이 새로 생겼다고, 아니 약간의 코드 룰이 변했다고 보면 될꺼 같다. 계속 들여다 보니 조금씩 코드들의 구조들이 익숙해진다. 설명은 아래 스크립트의 코멘트로 남겨두었다.
## LibraryClass.fla ##
## Timeline script ##/*********************************************************
## Library MovieClip addChild() Tutorial ##
2007. 2. 4
author by jin_u
www.jinustudio.com/weblogjin_u@jinustudio.com**********************************************************/
기존의 #include name.as; 가 'Document class'로 변하여 참 편리하다. 플래시 파일 안에서는 특별한 코드를 넣지 않아도 되고 'Document class'를 수정하여 자동(오브젝트 패널 기능) 퍼블리시를 하여 쉽게 눈으로 확인도 가능하다.
## LibraryClass.as ##
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.display.StageScaleMode;
//
public class LibraryClass
extends MovieClip{
var circleMC:MovieClip;
var isClick:Boolean = false;
//
public function LibraryClass ():void
{
trace ("LibrarytClass ()");
// 스테이지 사이즈를 고정시킨다. stage.scaleMode = StageScaleMode.NO_SCALE;
// circle을 만든다.
createCircle ();
}
//
private function createCircle ():void
{
trace ("createCircle ()");
// 라이브러리에 있는 circle 무비클립에 linkage로 등록한 LibraryClassCircle 클래스 호출
// LibraryClassCircle 클래스에 의해 객체가 생성이 되며 무비클립으로서 작동을 하게 된다. var c:MovieClip =
new LibraryClassCircle(stage.stageWidth/2, stage.stageHeight/2);
circleMC = c;
// 스테이지에 추가. addChild (circleMC);
// 이벤트리스러 마우스 클릭 추가 stage.addEventListener (
MouseEvent.CLICK,
doClick);
}
// LibraryClassCircle 의해 만들어진 무비클립을 play 및 stop 시킨다.
private function
doClick (e:
MouseEvent):void
{
if (isClick)
{
circleMC.
play ();
}
else
{
circleMC.
stop ();
}
isClick = !isClick;
}
}
}
## LibraryClassCircle.as ##
package
{
import flash.display.MovieClip;
//
public class
LibraryClassCircle extends MovieClip
{
public function
LibraryClassCircle (_x:int, _y:int):void
{
trace ("LibraryClassCircle ()");
// 라이브러리에 있는 circle 무비클립의 좌표값 넘긴다. initialize (_x, _y);
}
private function initialize (_x:int, _y:int):void
{
trace ("initialize ()");
// 라이브러리에 있는 circle 무비클립의 좌표값을 설정한다. x = _x;
y = _y;
}
}
}
이 글의 트랙백 주소 :: http://jinustudio.com/weblog/trackback/463
::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::