180bpm

UDK 11년 11월 버전에서 as3 파일 불러오기+텍스쳐 불러오기 본문

Flash/Scaleform

UDK 11년 11월 버전에서 as3 파일 불러오기+텍스쳐 불러오기

powdersnow 2012. 1. 27. 18:35
1. 우선 UDK를 받자.
http://udk.com/download

2. gfxexport를 최신버전으로 해야한다.

이유 - 에디터에서 콘텐츠 브라우저로 swf파일을 부를때 '임포트 실패'라는 메시지가 뜰 때가 있다.
제작환경 win7 64bit, Flash CS5, FP 9/AS3
경로도 올바르게 맞고 혹시 플레이어 탓인가 해서 FP8/AS2로도 해봤지만 역시 같은 문제 발생.

그래서 구글링을 하니 gfxexport 문제일수도 있다고 한다.
그래서 UDN에서 다음 gfxexport 최신버전을 받는다
http://udn.epicgames.com/Three/DownloadsPage.html#GFxImport Commandlet Fix


그럼 이제 코드를 짜야지.
퍼블리싱 셋팅은 FP9/AS3으로 해둔다.

AS3에서 좋은점을 한가지 찾았는데 loader 경로에 img:// 태그가 들어가도 스케일폼이 인식을 해준다.
AS2에선 인식 안해줘서 디버그용 패스를 따로 만들었는데!

근데 왜 CLIK에 UILoader가 안보이지..;..;...;;
AS2 전용인가?

작성했으면 swf를 임포트 시킨다
키즈멧으로 scene에 붙여야지
http://udn.epicgameskorea.com/Three/ScaleformQuickStartKR.html
//code start
import flash.events.Event;
import flash.events.MouseEvent;

import flash.display.Loader;

var SWFPath:String = "img://AS3test.loadimage";
var swfLoader:Loader = new Loader();
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onSWFloadComplete);
swfLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onSWFLoadFail);
swfLoader.load(new URLRequest(this.SWFPath));
btn1.addEventListener(MouseEvent.CLICK, onClick)


function onClick($e:Event):void{
	trace("Click");
	swfLoader.unload();
}

function onSWFloadComplete($e:Event):void{
	trace("success");
	this.addChild(swfLoader);
}
function onSWFLoadFail($e:Event):void{
	trace("error");
}
//code end


그래서 플레이어로 고고
스케일폼 메모리 보는 법은 콘솔 띄워서 stat gfx 전체 메모리는 stat memory



궁금한점이 생겼다.
3.3에서 이렇게 했을땐 other texture memory가 죽죽 올라갔는데 4.0에서는 gfx쪽 메모리가 전혀 올라가지 않는다.
진짜, 0.01Mb도 차이가 안난다.
그래서 전체 메모리를 확인해봤는데 여기서도 차이가 없다.

추가 - 메모리가 올라가는것이 아무래도 이상해서 player로 테스트를 하고 메모리는 작업관리자에서 직접 확인했습니다.
결과는 다음과 같습니다
단일파일 반복 로드(12회) 30.556 KB
12회 모두 다른 파일 234.776 KB
파일 경로가 실패해서 불러지지 못한 경우 21.500 KB

3.3에서는 이미 올라간 텍스쳐를 메모리에서 카피해서 다시 텍스쳐를 만들어 붙이는건가 라고 추정:D
Comments