본문 바로가기

AS3

FLA Auto build utility for flashbuilder developer FLA Auto build utility for flashbuilder developer 더보기
[AS3] asmx 사용하기 서버측 코드 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace PlasticWorkService { /// /// Summary description for sv /// [WebService(Namespace = "http://plasticfactory.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from sc.. 더보기
[AS3 Worker] Thread Test 드디어 As3 에 Worker 라는것이 생겼다. 바로 Thread 이다. 하지만 , 방법이 조금 지저분 하다. 실행되고 있는 바이트 코드를 그대로 복제하여 ,백그라운드에서 실행하고 그 결과를 메시지 체널 형태로 주고 받는다. 정확한 Thread 의 개념 보다는 .NET 의 BackgroundWorker 쯤으로 생각하면 될듯하고 쓰레드를 직접실행할 클래스 형태가 필요하다. 아래의 ThreadManager 는 구차한 Worker 생성과정을 미리 생성하고 Thread 객체를 관리하는 매니저 역할이다. 또하나의 Worker1 클래스는 쓰레드 개체가 생성하게될 , 즉 쓰레드가 수행할 내용이다. 아래의 실험은 같은 개체를 동시에 실행 하였을때 쓰레드 블럭킹이 발생하는지 실험하는 코드이다. * ThreadManage.. 더보기
간단한 AS3 바이트 버퍼 나누기 var file : File = new File("c:/img2-001.raw"); fs = new FileStream(); fs.open(file , FileMode.READ); var orgLength : int = fs.bytesAvailable; var c : int = 0; var totalByte : ByteArray = new ByteArray(); var buffByte : ByteArray; var _buffLegth : int = 1024 * 2; while(fs.bytesAvailable) { trace(fs.bytesAvailable); if(fs.bytesAvailable 더보기
[Multitouch on 3D World] 더보기
[Base64] 6메가 픽셀 정도의 비트맵 데이터를 JPEG 로 인코딩 하고 Base64로 변환해 보았다. package { import by.blooddy.crypto.Base64; import by.blooddy.crypto.image.JPEGEncoder; import flash.display.Bitmap; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.filesystem.FileStream; import flash.net.URLRequest; import flash.utils.ByteArray; import flash.utils.getTimer; import flash.utils.set.. 더보기
[AS3 , Enum] AS3 에서 Enum Type 을 구현하자 (Fake Enum in AS3) C#과 AS3 를 혼용 하여 사용하는 본인에게 AS3 에서 가장 아쉬운것중 하나는 Enum 타입이 없다는것이다. 물론 class SomeClass{ static const ENUMStr : String = "ENUM_STRING"; } 이런식으로 클래스 안에서 열거 하여 사용은 가능하다. 그러나 관리 적인 측면에서 아래와 같은 경우가 발생할때 참으로 애매하다. function insertEnumValue (_enumType : String):void { if(_enumType == SomeClass.ENUMStr ){ ... } } 위와 같은 상황에서 _enumType:String 의 값을 넣는 과정에서 함수 안의 코드가 SomeClass 에서 정확히 정의된 스트링을 받아 처리 한다면 아무런 문제가 없다.. 더보기
[AIR3] Setup in FB4.5 드디어 AIR3 이 나오고 Away3d 4.0 을 테스트 하기 위한 셋업 방법을 알아보자. 환경은 Flash Builder 4.5 이다. 우선 AIR3 SDK 가 필요 하다. ( http://www.adobe.com/special/products/air/sdk/ ) 그리고 flex 4.5 sdk 도 필요 한데, adobe open source 에서 구하거나 혹은 C:\Program Files\Adobe\Adobe Flash Builder 4.5\sdks 에서 얻을수도 있다. 방법은 기존의 4.5 sdk 의 사본을 만들고 그 위에다가 AIR3 sdk 를 덮으면 된다. 그러면 된다.... 위에는 Away4 의 status .. 찍은 화면이다. 정상적으로 돌고 있다.. 그리고 컴파일 옵션에 -swf-versi.. 더보기
[SimpleFileWriter] SimpleFileWriter를 이용한 파일레퍼런스 사용법 심플파일라이터 바로가기 private var fr:FileReference = new FileReference(); protected function ready(event:Event):void { stage.displayState = StageDisplayState.FULL_SCREEN; stage.addEventListener(MouseEvent.CLICK , click); fr.addEventListener(Event.SELECT , selectItem); } private function click(e:MouseEvent):void { fr.browse(); } protected function selectItem(event:Event):void { stage.displayState = StageD.. 더보기
[Molehill + AWAY3D] Hello Cube! 드디어 ! Molehill을 돌려봤다 생각보다 간단했다. 물론 Flash Builder 최신버전인 Burrito 에 서 테스트를 하였다 . 바로가기 튜토리얼을 돌리기 위해 몇가지가 필요한데 1. 우선 정식버전이 나오기 전까지 FlashPlayer11 인큐베이터 버전을 사용하자 http://labs.adobe.com/downloads/flashplatformruntimes_incubator.html 2. flex4.5 Hero Sdk 가 필요하다. http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+Hero 아래의 표시대로 4.5.19786 버전이 필요하다. 3.Syntex를 잡기위한 새로운 swc http://download.macromedia.. 더보기
[StageVideo Test] StageVideoEvent = accelerated 를 위한 조건 사실 10.2 버전이 출시 되자 마자 테스트를 했다 . 하지만 StageVideoEvent 는 software 라고 떠버리고 , 그냥 그때 생각에는 아직 완벽하지 않은가 했다. 그러던 와중 고해상도 영상을 다룰 일이 있어서 다시 보았는데 오창훈님 포스팅에서도 하드웨어 렌더링이 안되었다. 그래서 주변에 여러 분들께 테스트를 부탁하였고, 역시나 요번에도 히카님이 답을 주셨다 . 아주 간단하게 .. 답은 .. 내 그래픽카드가 구린거 였다. = = ;; 먼저 사양부터 확인했어야 하였다 . 내가 바보였다. 당시 즤포스8600을 쓰고 있었는데, 이렇게 옛날꺼인지 몰랐다. 그때 당시만 해도 8800 은 최고 , 8600은 비교적 괜찮음,, 이라는 평이 었는데 세월이 참 빠르다.. 어찌되었든 그래픽카드가 Dx11 을 .. 더보기
[FlashPlayer11 ] Molehill 우선 .. http://labs.adobe.com/downloads/flashplatformruntimes_incubator.html 로 가서 Download active-x for Windows — for Internet Explorer only (EXE, 3.5 MB) 를 설치한다 . 나중에 언인스톨은 Download the Flash Player Incubator uninstaller for Windows 로 한다.. 그다음 .. http://www.ringo.nl/projects/away3d/broomstick/LoaderOBJTest.html http://infiniteturtles.co.uk/projects/away3d/broomstick/ShallowWaterDemo.html 기타 등등.. .. 더보기
[Diebuster -> Non blocking loop] 과제 답변 @ 위에 그림은 제가 브라우져를 확대하다가 우연히 발견하였습니다 ( ㅋ ) 이벤트라도 걸어 놓으신거 아닌지.. @ 원문보기 : http://www.diebuster.com/?p=1559#/?p=1903 @과제 : non blocking loop가 완료될 때 완료이벤트를 수신할 수 있도록 개선하시오. 아예 Shape를 상속하도록 개선하시오. 일반화시켜 클래스로 정리하는 포스팅을 한 건 처음이지만 non blocking에 대해서는 이미 두어 개의 포스트가 블로그 내에 존재하니 찾아보세요. @답안 *1. , 2. :  Created with colorer-take5 library. Type 'actionscript' package { import flash.display.Sprite; import flas.. 더보기
[javascript] 자바스크립트 메소드를 AS3 에서 작성 / 호출 하기 package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.external.ExternalInterface; import flash.text.TextField; public class testJS extends Sprite { public function testJS() { /* *@author jjongun */ //javascript in XML class var script : XML = [CDATA[ function javascriptMethodinAS3() { alert("TEST!!"); window.moveBy(200,10); } ]]> ; //call javascript var bt : Sprite .. 더보기
[WonderFL] Tenorion using QuickBox2D http://wonderfl.net/c/pMYM 더보기
간단한 비율을 유지한체 크기를 바꾸는 로직 (ResizeEvent) 간단한 비율을 유지한체 크기를 바꾸는 로직 (ResizeEvent) by superSC 2009/06/17 20:55 scripter.egloos.com/1527109 덧글수 : 0 그냥 피드를 남길것 까진 없지만 ... 그래도 어쩌다가 혹시 나 갑자기 머리가 안돌아 갈수 있을까봐 남긴다 (이 글을 썼다는 자체를 까먹을수도 있을것 같다. ㅡ,.ㅡ) var _canvas:Canvas = new Canvas // 캔버스 를 바탕으로..~ var vid:Video = new Video(640,480) _canvas.addEventListener(ResizeEvent.RESIZE , resizer) function resizer(e:ResizeEvent):void { var WID:int = e.currentT.. 더보기
[Tweensy] 방사체 만들기 var bml:BitmapLayer = new BitmapLayer(stage.stageWidth , stage.stageHeight) bml.add(new FilterEffect(new BlurFilter(5,5))) bml.add(new ColorEffect(new ColorTransform(1,1,1,0.9))) var emitter:Emitter = new Emitter(SampleClass,{scaleX:0 , scaleY:0},4,50,"0,360","100,50") bml.draw(emitter.holder) stage.addChild(bml) emitter.blendMode = BlendMode.OVERLAY addEventListener(Event.ENTER_FRAME , en) func.. 더보기
[ getDefinitionByName ] String 으로 Class 참조 [ getDefinitionByName ] String 으로 Class 참조 import SomePackage.SomeClass; /****/ private var someInstance:SomeClass /****/ var getClass:Class = getDefinitionByName("SomePackage.SomeClass") as Class; /****/ new getClass( someArg1 ... ); 더보기
[64Bit FlashPlayer 10.1] flash player 64비트 브라우져별 테스트 테스트 컴퓨터 : new MacBook (intel2.4G / 2GB RAM) ( http://www.apple.com/kr/macbook/specs.html ) 테스트 운영체제 : MAC osX 10.6.4 [ 사파리( x64/ x86) , FireFox4 Beta( x86 ) , MineField(Firefox x64)] Windows7 [ ie8 (x64/ x86) , ie9(x64/ x86) , FireFox4 Beta( x86 ) , MineField(Firefox x64)] 첫번째 화면 : wonderfl ( http://wonderfl.net/c/wX0O ) // CPU 연산속도를 체크 두번째 화면 : youtube hd 영상 ( https://www.youtube.com/results?sea.. 더보기
SimpleCam SimpleCam 그냥 웹캠 캡춰만 하는 심플웨어 이다. 상단의 캡춰 버튼을 누루면 순차적으로 바탕화면에 jpg로 저장된다. jpg코덱이 궁금하다면,. http://scripter.egloos.com/1457477 에 예전에 포스팅 했더랬다. (막상 ..햇갈려서 구글링하니, 내 블로그가 걸리는 ㅡㅡ;;...) (그리고 참... 캠, 구리다,.. ) 다운로드 : SimpleCapture.air AIR1.5 가 없다면.. http://get.adobe.com/kr/air/?promoid=BUIGQ 더보기
[BitmapData의 갱신] [BitmapData의 갱신] 비트맵데이터를 실시간으로 갱신하고 메모리 사용량을 trace 한것이다. 보는것처럼 메모리양은 평균수준을 지킨다. 따라서 메모리에대한 스트레스는 그리 갖지 않아도 될듯하다. 다음은 테스트 코드 이다.test2.mxml 더보기
[적외선 카메라 만들기] 로지텍 퀵캠(울트라 비전)Ultra Vision [적외선 카메라 만들기] 로지텍 퀵캠(울트라 비전)Ultra Vision by superSC 2009/10/23 20:19 scripter.egloos.com/1695125 덧글수 : 2 먼저 t9t9.com 에게 감사^^; 일반 웹캠을 가지고 적외선 카메라로 만들어 보겠다. 꼬박 반나절 걸렸다. 이것저것 사모은다고.. 우선 사용한 캠은 로지텍의 울트라 비전이다. 비싸다. 그러니 싼거 해도 된다. 근데 꼭 반드시 빠르고 안전하게 하겠다는 분은 안말린다. 우선 뜯어야 했다. 이건 컬러네가티브 필름(보통 필름)의 태운? 부분이다. 사진관 아저씨가 이부분을 태운 부분이라고 하더라. 그냥 사진관 가서 구걸? 하거나 아니면 집에 하나씩을 있을것 같은.. 필름조각들의 끝트머리 를 보라 이와 같은 색갈의 부분이 있는.. 더보기
[MVC for AS3] 세상에서 가장 알기쉬운 MVC 구조 동그라미는 MVC 클래스 구조를 나타낸것이고 스마일은 사용자를 나타냄. 동그라미 위의 흰 글씨는 제공된 예제파일을 나타냄. 동그라미 아래의 주황글씨는 대략적인 작성원리를 나타냄. 동그라미 안의 보라색 글씨는 각각의 역할을 나타냄 헤드퍼스트 디자인 페턴에 소개되었던 MVC를 as3 용으로 바꾼것입니다 원문에서는 옵저버패턴을 사용하여 상태변화를 다른객체에서 감지 하였으나 as3의 주 무기? 인 이벤트리스너를 사용하여 그것을 대체하였습니다. 또한 비트에 맞추어 소리를 내는 대신 버튼이 깜빡이는것으로 대체하였습니다. 예제 : MVC_test.rar 예제는 flex4 sdk 로 제작하였습니다. flex3 사용자는 컴포넌트를 변경하시면 빌드가 가능합니다 ( 요청이 있을경우 flex3 으로 변경하여 올리겠습니다) 요.. 더보기
[Flex4 , Flash Builder] addChild 가 없다니!! 사실 플래시 빌더가 나오자 마자 테스트를 할려고 따운받고 실행하는 순간 시리얼 넣으란다.. 베타에 시리얼이 왠말..일까.. 그래서 찝찝해서 안하고 있다가 Flex3시리얼 키 있으면 무료로 발송해준다고 하더라.~ (지돌스타님 블로그 : http://blog.jidolstar.com/542) 사실 나는 에듀케이션 시리얼을 가지고 있었다 그리고 혹시나 하는 마음에 해보니깐 되더라 참.. 그래서 테스트를 하는데 ,addChild 가 안먹는다. 버그리포팅을 보니 그냥 에러를 내도록 해놨더라. .. 쓰지 말란거지.. 전반적으로 변화가 있더라~ 예전에 Sprite 를 UiComponent 에 집어넣지 못한점등등 네이티브 그래픽 클래스들과 컴포넌트간의 상이한 표현을 없에기 위해 만들었다고 하더라 (지돌스타님 관련글 :.. 더보기
[FLV] VideoDisplay를 상속한 클래스에서 재생리스트 구현시 다음 영상 playheadTime 문제 잡기 * extends VideoDisplay ( 상속하여 다음 무비를 source=" "로 로딩한다 ) 상황 : 1. HSlider를 사용하여 영상을 seeking 한다. 2. 그리고 무비가 끝난다. 곧바로 다음 무비가 로드 된다 3. 다음 무비는 처음부터 시작하지 않고 HSlider로 seeking 한 시간대로 이동한다. 이문제를 해결하기 위해서는 2번 상황에서 playheadTime 속성을 초기화 해야 한다. ex) //상속된 클래스에서 비디오가 끝나는 시점을 캐치 한다 addEventListener(VideoEvent.COMPLETE , endVideo) function endVideo(e:VideoEvent):void { //시간대 초기화 playheadTime = 0 //다음 영상 재생 source.. 더보기
[Loader] for문을 이용한 이미지 로드시 모든 이미지를 로드하지 못하는 버그 잡기 for 문을 이용해 여러장을 한꺼번에 로드 할경우 카운트를 해보면 성능에 따라 모든 이미지를 로드 하지 못하는경우가 발생할수 있다. 특히 로컬과 같이 인터넷 속도가 빠른경우 발생할수 있는데 이를 간단한 재귀함수로 해결할수 있다. public function load():void { // 이미지가 목표수치에 도달하면 재귀를 멈춘다 if( matchCount == birdge.Get_imgs().length ) { return ; } loadImg(matchCount) } private function loadImg(length:int):void { loader = new Loader loader.load( new URLRequest(birdge.Get_imgs()[length] ) ) loader.cont.. 더보기
[3D Model Loader]디자이너를 위한 3D (DAE , MD2)파일 테스터 얼마전 만들었던 모델로더를 업그레이드 했다 MD2 포멧과 MD2 play 기능과 스케일 기능이 추가 되었다. 테스터 : Test.zip 3D_LOADER.air 물론 AIR 가 깔려 있어야 하겠다. http://get.adobe.com/kr/air/?promoid=BUIGQ Md2 참고 http://labs.apollocation.co.kr/technologies/papervision/papervision3d.php?menu=1 더보기
[AS3 Code Libraries] 3D Engines Papervision3D http://blog.papervision3d.org/ Away 3D http://www.away3d.com/ Sandy 3D http://www.flashsandy.org/ Alternativa Platform http://blog.alternativaplatform.com/en/ FIVe3D http://five3d.mathieu-badimon.com/ WireEngine3D (we3d) - A lightweight and fast 3D Engine for Flash 8/9. http://osflash.org/we3d/ Sharikura http://temp.roxik.com/datas/physics/ 3D Game Engines PaperWorld 3D .. 더보기
[DAE Loader]디자이너를 위한 DAE 파일 테스터 Dae_LOADER.air 디자이너와 프로그래머가 협업시 디자이너가 넘겨준 DAE 파일을 하나하나 프로그래머가 확인해야 하는데.. DAE 파일 익스포팅시 옵션도 여러개고 자료를 왔다갔다 하는 시간을 아끼기 위해 간단한 DAE 테스터를 제작했다. 사용방법은 그냥 로드 하고 .. 돌려보면 된다 물론 AIR 가 깔려 있어야 하겠다. http://get.adobe.com/kr/air/?promoid=BUIGQ Dae_LOADER.air 더보기
UI컴포넌트 안에 Sprite 를 쓰자!! Flex 의 UIcomponent 안에 Sprite 객체를 넣지 못하는건 아마 잘 아는 사실일것이다. 간단한 이유는 Sprite 는 UIcomponent를 상속받지 못했기 때문이다. 그래서 아래와 같이 사용하는것이 좋을것 같다. (그러나 .. 리소스 잡아먹는건 마찮가지다.) package { import flash.display.Sprite; import mx.core.UIComponent; public class sampleSprite extends UIComponent { private var sample:Sprite public function sampleSprite() { super(); sample = new Sprite sample.graphics.beginFill(0xffffff) sampl.. 더보기