프로젝트 템플릿 ant

찬익님은 이러한 글을 적었습니다.

근데 글의 느낌이 말이죠, 그러니까 그게 좋은데…라고 말해주면서 메롱~이라고 같이 외치는 느낌이랄까 ^^;

그래서 제 초기화 xml을 공개해볼까합니다.


제 init.xml은 매우 다양한 일을 합니다. 다음과 같이 요약됩니다.

  1. 프로젝트의 기본 폴더 구조를 잡는다 – doc, lib, src/com/bsidesoft/P, src/embed, src/remote 등
  2. 사용할지도 모르는 프리로더를 생성한다. – PRELOADER.as
  3. Main.as가 인클루드하여 사용할 embed.as 를 생성하고 주석으로 각종 embed기술방법을 명시해준다.
  4. Main.as를 생성해준다.
  5. 액션스크립트 프로젝트 설정을 다시 잡아주고 필요한 기본 라이브러리나, 컴파일 추가 설정, 어플리케이션클래스 설정을 전부 해준다.

따라서 전 프로젝트를 만들면 init.xml을 프로젝트 폴더로 카피해서 실행한 뒤 F5를 누르면, Main.as, embed.as, PRELOADER.as가 생성되어있고 필요한 폴더 구조도 전부 생성되어있으며 프로젝트 설정도 전부 끝나 있는 상태로 시작하게 됩니다.

라고 말하면 다시 메롱을 하는 셈이니 xml을 공개합니다.

<?xml version="1.0"?>

<project name="프로젝트 이름을 넣는다!" default="" basedir=".">
	<target name="init">
		<mkdir dir="${basedir}/doc" />
		<mkdir dir="${basedir}/lib" />
		<mkdir dir="${basedir}/src/com" />
		<mkdir dir="${basedir}/src/com/bsidesoft" />
		<mkdir dir="${basedir}/src/com/bsidesoft/P" />
		<mkdir dir="${basedir}/src/embed" />
		<mkdir dir="${basedir}/src/remote" />
		<echo file="${basedir}/src/PRELOADER.as" encoding="UTF-8">package{

	import com.bsidesoft.BScore.*;
	import flash.display.*;

	[SWF(backgroundColor="#ffffff", frameRate="110", width="1000", height="700")]

	public class PRELOADER extends Cpreloader{

//		[Embed(source='embed/gagebg.jpg')]
//		public var bg:Class;
//		[Embed(source='embed/gage.png')]
//		public var gage:Class;

		public function PRELOADER():void{
			super();
		}
		override protected function _init():void{

//			_mask = new Sprite();
//			_mask.graphics.beginFill( 0xffffff );
//			_mask.graphics.drawRect( 95, 237, 311, 22 );

//			addChild( new bg );
//			addChild( new gage );
//			addChild( _mask );
//			getChildAt(1).mask = getChildAt(2);
//			getChildAt(1).x = -216;
//			getChildAt(1).y = 237;

		}
		override protected function _progress( $loaded:int, $total:int ):void{
//			getChildAt(1).x = ( _mask.width * $loaded / $total ) - 216;
		}
		override protected function _loaded():void{
//			getChildAt(1).x = 95;
		}
	}
}
		</echo>
		<echo file="${basedir}/src/embed/embed.as" encoding="UTF-8">/*

//폰트자원 이름 예제
[Embed(source='embed/ygo360.ttf', mimeType='application/x-font-truetype', embedAsCFF='false',
fontName='ygo', fontWeight='bold', fontStyle='italic',
unicodeRange='U+0020-U+007E,U+AC00-U+D7A3,U+FF01-U+FF60,U+0080-U+00FF' )]
public var FONTygo:Class; //fontName의 'ygo'가 Font.resiterFont를 통해 등록된다.
	---폰트의 범위---
	아스키 : U+0021-U+007E - http://www.fileformat.info/info/unicode/block/basic_latin/list.htm
		숫자 : U+0030-U+0039
		A-Z : U+0041-U+005A
		a-z : U+0061-U+007A
	라틴1 : U+0080-U+00FF - http://www.fileformat.info/info/unicode/block/latin_supplement/list.htm
		™ : U+0099
		© : U+00A9
		® : U+00AE
		· : U+00B7
		é : U+00E9
	히라가나 : U+3040-U+309E - http://www.fileformat.info/info/unicode/block/hiragana/list.htm
	카타가나 : U+30A0-U+30FF - http://www.fileformat.info/info/unicode/block/katakana/list.htm
	한글자모 : U+3130-U+318F - http://www.fileformat.info/info/unicode/block/hangul_compatibility_jamo/list.htm
		ㄱ~ㅎ : U+3131-U+3177
	한글 : U+AC00-U+D7A3
	괄호문자원문자: U+3200-U+32FF - http://www.fileformat.info/info/unicode/block/enclosed_cjk_letters_and_months/list.htm
		㉿ : U+327F
	각종 단위 : U+3380-U+33DD - http://www.fileformat.info/info/unicode/block/cjk_compatibility/list.htm
	전각 : U+FF01-U+FF60, U+FFE0-U+FFE6 - http://www.fileformat.info/info/unicode/block/halfwidth_and_fullwidth_forms/list.htm
		¥ : U+FFE5
		₩ : U+FFE6
	반각 : U+FF61-U+FFDC, U+FFE8-U+FFEE - http://www.fileformat.info/info/unicode/block/halfwidth_and_fullwidth_forms/list.htm
		「 : U+FF62
		」 : U+FF63
		・ : U+FF65
		■ : U+FFED
		○ : U+FFEE

	특정코드조회 : http://www.fileformat.info/info/unicode/char/코드번호/index.htm
//이미지자원 이름 예제
[Embed(source='embed/type.jpg')]
public var BITMAPtype:Class; //'type'이 키로 지정된다.

//벡터자원 이름 예제
[Embed(source='embed/text0.svg')]
public var SPRITEtext0:Class; //'text0'가 키로 지정된다.

//사운드자원 이름 예제
[Embed(source='embed/play.mp3')]
public var SOUNDplay:Class; //'play'가 키로 지정된다.

//픽셀벤더자원 이름 예제
[Embed ( source="embed/bilinearre.pbj", mimeType="application/octet-stream" ) ]
public var SHADERbilinear:Class; //'bilinear'가 키로 지정된다.

//클래스자원 이름 예제
public var CLASStest:Class=com.bsidesoft.test; //'test'가 키로 지정된다.

//기타자원 이름 예제
[Embed ( source="embed/text.xml", mimeType="application/octet-stream" ) ]
public var BYTEtext:Class; //'text'가 키로 지정된다.
*/
		</echo>
		<echo file="${basedir}/src/Main.as" encoding="UTF-8">package{

	import com.bsidesoft.BScore.*;

	//[Frame(factoryClass="PRELOADER")]
	[SWF(backgroundColor="#ffffff", frameRate="60", width="1000", height="600")]

	public class Main extends CS{

		include "embed/embed.as";

		public function Main():void{
			super( ARG.keyControl( true ).tabChildren( true ).qualityHigh() );
		}

		override protected function _init():void{

		}
	}
}</echo>
		<echo file="${basedir}/.actionScriptProperties" encoding="UTF-8"><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<actionScriptProperties mainApplicationPath="Main.as" version="3">
  <compiler additionalCompilerArguments="-static-link-runtime-shared-libraries=true -target-player=10.0.0 -keep" copyDependentFiles="true" enableModuleDebug="true" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersion="10.0.0" htmlPlayerVersionCheck="true" outputFolderPath="bin-debug" sourceFolderPath="src" strict="true" useApolloConfig="false" verifyDigests="true" warn="true">
    <compilerSourcePath>
      <compilerSourcePathEntry kind="1" linkType="1" path="${DOCUMENTS}/bsidesoft/core/src"/>
      <compilerSourcePathEntry kind="1" linkType="1" path="${DOCUMENTS}/bsidesoft/display/src"/>
      <compilerSourcePathEntry kind="1" linkType="1" path="${DOCUMENTS}/bsidesoft/net/src"/>
      <compilerSourcePathEntry kind="1" linkType="1" path="${DOCUMENTS}/bsidesoft/media/src"/>
    </compilerSourcePath>
    <libraryPath defaultLinkType="1">
      <libraryPathEntry kind="4" path="">
        <excludedEntries>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_charts.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="1" linkType="1" path="${PROJECT_FRAMEWORKS}/locale/{locale}"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/charts.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/rpc.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/datavisualization.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/framework.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_dmv.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_flashflexkit.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
        </excludedEntries>
      </libraryPathEntry>
	  <libraryPathEntry kind="1" linkType="1" path="lib"/>
    </libraryPath>

    <sourceAttachmentPath/>
  </compiler>
  <applications>
    <application path="Main.as"/>
  </applications>
  <modules/>
  <buildCSSFiles/>
</actionScriptProperties>]]></echo>
	</target>
</project>
Browser does not supports flash movie


관련된 글:

  1. ini로 view를 기술하기 프로젝트
  2. BSpapervision 프로젝트 개요
  3. 플래시 프로젝트 생성하기
  4. 신규 프로젝트 팀원모집
  5. ANT를 생활 속으로…

14 Comments

  1. 찬익 says:

    윽 ㅋㅋ 메롱은 절대 아녜요 ㅋㅋ
    아무래도 아이디어를 처음 접하시는 분께서 직접 생각해서 만드시면,
    저와는 분명 다르게 구현하는 곳이 생길 것이라, 그 분들의 생각에서 저도 다시 배우고,
    아이디어도 더욱 발전시켜나가기 위함이었어요 ㅎㅎ

    물론, 시간이 모자라다는 점도 한 몫 하긴 했지만.. ㅎㅎ

    • admin says:

      분명히 맞는 말씀입니다.
      하지만 다른 유저가 새로운 형태를 상상해내는데 제약을 거는 다른 한편으로 이러한 생각의 재료가 있기 때문에 더욱 혁신적인 다음 세대의 뭔가가 나올수도 있지 않을까라는 면도 분명히 있다고 생각합니다 ^^

      • 찬익 says:

        음.. 인정합니다. 확실히 그 편이 더 많은 효과를 볼 수 있을 것 같습니다.
        역시 시작점은 Hello World와 Beginner’s Tutorial.. ㅎㅎ
        다만, 제가 그런 형식의 문서에는 워낙 소질이 없는 터라..
        아무래도 Technical Writer를 한 명 구해서, 팀 블로그를 만들어야겠어요 ㅎㅎ

  2. 검쉰 says:

    아~ 놀라운 ANT !! ^^
    잘 보았습니다 ;)

  3. 지돌스타 says:

    메롱~~ ㅋㅋㅋ 멋진 활용방법입니다.

  4. 열이아빠 says:

    메롱~ 이 아니었다고 하더라도
    그런 메롱은 필요하지 않나 싶습니다.
    물론 두분 다 메롱을 날리셨다면 이런 기분은 아니었지 않을까 싶지만..^^
    멋진 아이디어 감사합니다.

  5. vulcan says:

    머리좋다…라는 생각이 항상 듭니다 ㅎㅎ

  6. 지돌스타 says:

    여기 내용이 매우 유익하게 도움되었습니다. ^^
    http://dev.naver.com/projects/wonderfl

Leave a Reply