일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- DataBinding
- Document Class
- scaleform4
- 클릭
- GDC
- scaleform
- addChild
- ApplicationDomain
- flash player 10
- 강좌
- 태그클라우드
- CLIK
- 샌프란시스코
- flash cs3
- watch
- KGC 2013
- autodesk
- 수학정석
- 형변환
- Chart
- as3.0
- scaleform3
- as3
- 스케일폼
- flash
- 집합의 연산
- 플래시
- 애드온
- MMOKit
- as2
- Today
- Total
목록분류 전체보기 (380)
scaleform.minarto.com
의외로 모르시는 분들이 많아서 간단한 로컬라이징 팁을 하나 말하려 합니다. 스케일폼을 쓰면(스케일폼이 아니더라도) 번역 맵 문서를 만들곤 합니다.스케일폼 폰트 문서에도 나와 있듯이 로컬라이징 맵과 각언어별 값을 표시해두죠... 간단하게 "레벨"을 예를 들면 다음과 같습니다. map ID1580korean "레벨"english "Level" 이렇게 해놓고 UI에는 ID1580 이라고 넣어놓으면 게임이 실행될 때 자동으로 해당언어로 번역이 되는 것이죠.뭐 새로울 것은 없습니다. 그냥 하면 되지요... 그런데 문제는 변수와 상수가 섞인 값의 경우입니다. 보통 레벨을 뿌리려면 "레벨" 이란 단어만이 아닌 "레벨. 17" 이렇게 "레벨" 라는 상수값과 "17" 이라는 변수값이 합쳐져서 뿌려져야 합니다. 그냥 "I..
UI를 만들다 보면 시간과 관련된 개발을 할 때가 꽤 많습니다. 단순히 시계 표시도 있고, 카운터도 많죠... 시간에 관한 프로그레스 바도 있고 암튼 게임 장르를 가리지 않고 굉장히 많습니다. 간단하게는 enterframe 로 만들겠지만 이 방식도 문제가 있습니다. 시스템이 버벅거리면 오차가 발생하기 때문입니다 저같은 경우는 다음과 같은 라이브러리를 만들어서 사용합니다 https://github.com/minarto/scaleform-as2-libraries/blob/master/src/com/minarto/data/DBind.as 예를 든건 as2버전이지만, as3 버전도 이론적으로 똑같습니다. (라이브러리에 올라가있는 as3 버전은 옛날 코드이니 문제가 발생할 수 있습니다) 스케일폼에서는 시간을 어쨌..
지금 설명할 방법은 간단히 말해서 꽁수입니다. CLIK 기반의 스케일폼에서 함수 하나만 오버라이딩 하면 바로 적용되는 궁극의 필살기(?)입니다. public function invalidate():Void { if (invalidationIntervalID)return; invalidationIntervalID = setInterval(this, "validateNow", 5); } 끝났습니다 :) UIComponent 클래스를 파본 분은 아시겠지만, 원리는 이렇습니다. 렌더링을 바로 1ms 마다 하게 됩니다. 정확히는 draw 함수를 1ms 마다 실행하지요. 그 시간을 늘려주는 겁니다. 바로 위의 코드에 숫자로 써있는 5가 바로 5ms 로 늘려준 겁니다. 확실하게 테스트를 해보시려면 한 500 정도 줘..
스케일폼 개발하시던 분들이 기존 프로젝트가 진행하던 곳에 입사하시면 제일 당황스러운 것 중 하나가 바로 무분별하게 프레임 코딩된 소스를 고치는 일입니다. 프레임 코딩은 바이너리 파일이다보니 버전관리도 제대로 되질 않아, 히스토리가 무의미 하고, 에디터 또한 쓸 수 없죠. 뭐, 짜증이 날 지언정 기존 개발자들에게 뭐라고 하지는 마세요. 회사에서 새로운 언어와 툴을 익혀서 UI를 만들라고 던져줬는데... 여러분도 아시겠지만 시간이나 많이 줬겠습니까?클라이언트다 보니 중간 중간에 컨텐츠는 컨텐츠 대로 쳐야 했을 것이고요... 어쨌든 그런 프로젝트에 투입되었다면 최적화고 나발이고 as 파일로 뽑아내는 것이 가장 우선되어야 할 것입니다. 그런데 의외로 일일히 모든 무비클립을 클릭해가며 노가다로 찾아 헤매는 분이 ..
어떤 디스플레이 객체가 어떤 컨테이너 안에 속해있는지를 판단해야 할 때가 있습니다. as3 라면 contains 같은 메소드로 간단히 해결하겠지만, as2는 그렇지가 못하죠 하지만 다른 방법이 있습니다. 전역함수에 targetPath 라는 녀석이 있고, 디스플레이 객체의 경로를 반환하죠... 뭐 이런 겁니다... var container:MovieClip = this.createEmptyMovieClip("container", 0); var mc:MovieClip = container.createEmptyMovieClip("mc", 0); trace(targetPath(container)) trace(targetPath(mc)) trace(targetPath(mc).indexOf(targetPath(co..
음... 게임회사의 as2 코드들을 보면 hitTest 를 사용해서 툴팁을 구현하려는 경우가 많아요... 하지만 hitTest 는 아시다시피 연산이 엄청 들어가죠... 그래서 다음과 같은 방법은 어떨까요??? import gfx.controls.Button; _global.gfxExtensions = true; var container:MovieClip = this.createEmptyMovieClip("container", 0); function onEnter() { var btnPrev:Button; onEnter = function() { var btn:Button = Button(Mouse.getTopMostEntity()); if(btn) { if(btn != btnPrev) { if(btnPr..
다시 수년만에 as2의 세계에 입문하게 되어서... as2의 감각을 깨우기 위한 포스팅... 이런 함수가 있다고 쳐보죠... function a():Void { var obj = {}; Mouse.addListener(obj); obj.onMouseDown = function() { trace("a"); } } 뭐, 이것도 나쁘지 않습니다만 다음과 같이 바꿀 수 있습니다 function a():Void { var obj = arguments.callee; Mouse.addListener(obj); obj.onMouseDown = function() { trace("a"); } } arguments.callee 는 바로 함수객체를 가르키는 포인터입니다. 바로 "a" 라는 함수 말이죠. 이렇게 만들면 오브젝..
올해도 Game Tech 가 열렸습니다 http://gametech.newsngame.com/program.html TimeSubject09:00~09:20Registration09:20~10:00[Keynote1] - 몰입감 있는 게임을 위한 최고의 시스템, ‘PlayStation®’소니컴퓨터엔터테인먼트코리아 카와우치 시로 사장10:00~10:30[Keynote2] - 멀티스크린을 위한 게임 개발 환경삼성전자 김규호 전무10:30~10:40Break10:40~11:20[Keynote3] - Global Success with Google PlayGoogle Korea, Head of Apps & Games, 민경환11:20~12:00[Keynote4] - Improved Game Distribution..
올해도 어김없이 오토데스크 게임웨어 서밋이 열렸습니다. (정식명칭은 게임 유저 서밋이군요...) http://autodeskcampaign.co.kr/edm/fy14/20140120_webinar/edm_mne_autodesk_0211_v1.html Autodesk Game User Summit 20143D 디자인, 엔지니어링 그리고 엔터테인먼트 소프트웨어를 제공하는 세계적인 선도기업인 오토데스크코리아에서 게임 개발자들을 위한 Autodesk Game User Summit 2014 를 개최합니다.Autodesk Game User Summit 2014에서는 게임개발과 콘텐트 제작에 필요한 오토데스크 M&E 미들웨어 신제품에 대한 소개 및 소프트웨어 제품간 상호운영성과 전체 워크플로우를 보여드릴 예정입니다...
1. KGC 2013 사진 및 제 근황 https://plus.google.com/u/0/photos/104740635966394103358/albums/5930763749309057841 앞서서 말했지만 오토데스크에서 초대권을 보내주셔서 KGC에 다녀왔습니다 사실 개인 참가자가 그냥 가기에는 꽤 비싼 세미나여서 말이죠 :^)(사전접수 75,000 당일접수 150,000) 그리고 또 한가지... 요즘의 제 근황을 말씀드리자면 회사 이직을 하였습니다. 뭐, 전 직장에서 이직할 만한 문제가 있다거나 서운하게 했다거나 그런건 전혀 없습니다.가까운 지인들 정도만 아는 개인 사정으로 인해 가까운 직장으로 옮겼을 뿐입니다 :^) (그것이 실제로 일어났습니다. 농담이 아닌 것이 면접때도 이직사유로 같은 말을 했답니다..