프로젝트 템플릿 ant
찬익님은 이러한 글을 적었습니다.
근데 글의 느낌이 말이죠, 그러니까 그게 좋은데…라고 말해주면서 메롱~이라고 같이 외치는 느낌이랄까 ^^;
그래서 제 초기화 xml을 공개해볼까합니다.
제 init.xml은 매우 다양한 일을 합니다. 다음과 같이 요약됩니다.
- 프로젝트의 기본 폴더 구조를 잡는다 – doc, lib, src/com/bsidesoft/P, src/embed, src/remote 등
- 사용할지도 모르는 프리로더를 생성한다. – PRELOADER.as
- Main.as가 인클루드하여 사용할 embed.as 를 생성하고 주석으로 각종 embed기술방법을 명시해준다.
- Main.as를 생성해준다.
- 액션스크립트 프로젝트 설정을 다시 잡아주고 필요한 기본 라이브러리나, 컴파일 추가 설정, 어플리케이션클래스 설정을 전부 해준다.
따라서 전 프로젝트를 만들면 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>
관련된 글:
윽 ㅋㅋ 메롱은 절대 아녜요 ㅋㅋ
아무래도 아이디어를 처음 접하시는 분께서 직접 생각해서 만드시면,
저와는 분명 다르게 구현하는 곳이 생길 것이라, 그 분들의 생각에서 저도 다시 배우고,
아이디어도 더욱 발전시켜나가기 위함이었어요 ㅎㅎ
물론, 시간이 모자라다는 점도 한 몫 하긴 했지만.. ㅎㅎ
분명히 맞는 말씀입니다.
하지만 다른 유저가 새로운 형태를 상상해내는데 제약을 거는 다른 한편으로 이러한 생각의 재료가 있기 때문에 더욱 혁신적인 다음 세대의 뭔가가 나올수도 있지 않을까라는 면도 분명히 있다고 생각합니다 ^^
음.. 인정합니다. 확실히 그 편이 더 많은 효과를 볼 수 있을 것 같습니다.
역시 시작점은 Hello World와 Beginner’s Tutorial.. ㅎㅎ
다만, 제가 그런 형식의 문서에는 워낙 소질이 없는 터라..
아무래도 Technical Writer를 한 명 구해서, 팀 블로그를 만들어야겠어요 ㅎㅎ
저도 요즘 용호씨가 풀어주는 제 블로그를 보면서 비슷한 생각중이었습니다 ^^
같이 돈 모아서 한 명 고용할까요 ㅎㅎ
아~ 놀라운 ANT !! ^^
잘 보았습니다 ;)
게으름을 해소하고자 하는 인간의 의지는 재미난걸 할 수 있게 해주는 듯 ㅎㅎㅎ
메롱~~ ㅋㅋㅋ 멋진 활용방법입니다.
ㅎㅎㅎ 뭐랄까 저에겐 상관없지만서도 진찌 궁금한 사람에겐 딱 그럴 것 같은 느낌이었다는 ^^
메롱~ 이 아니었다고 하더라도
그런 메롱은 필요하지 않나 싶습니다.
물론 두분 다 메롱을 날리셨다면 이런 기분은 아니었지 않을까 싶지만..^^
멋진 아이디어 감사합니다.
ㅎㅎ 꼭 발전 시켜주시길 기대하면서
머리좋다…라는 생각이 항상 듭니다 ㅎㅎ
전 머리가 좋은 편은 분명히 아닐 겁니다 ^^
게으름에 적극적으로 대체하는 정도는 분명히 남들보다 더하다고 생각합니다만..
여기 내용이 매우 유익하게 도움되었습니다. ^^
http://dev.naver.com/projects/wonderfl