본문 바로가기

AS3

[Broadcast Video Streaming] 640 * 480 * 4 만큼의 컬러 바이트 배열을 실시간으로 각 SWF 로 전송하여 그 컬러 배열 대로 bitmap을 만들어 실시간으로 업데이트 했다. 초당 1.2 M 전송율 , 로컬 네트워크로 묶을 경우 대역폭을 생각해서 공유기를 선택하면 효율적일듯 함. 문제 화면 깜빡거림 문제 : 82 바이트 만큼의 크기가 맞지 않는다. 화면 색 : 전송되는 컬러 바이트 배열순서와 복원 되는 컬러 바이트 배열 순서가 서로 틀려서 나온 결과 ARGB , BGRA , RGBA 결과 ㅡ 돈주고 화면 스트림 장비나 , 서버를 산다던데,,, 구지,,, 더보기
[AS3 Worker] Thread Test 드디어 As3 에 Worker 라는것이 생겼다. 바로 Thread 이다. 하지만 , 방법이 조금 지저분 하다. 실행되고 있는 바이트 코드를 그대로 복제하여 ,백그라운드에서 실행하고 그 결과를 메시지 체널 형태로 주고 받는다. 정확한 Thread 의 개념 보다는 .NET 의 BackgroundWorker 쯤으로 생각하면 될듯하고 쓰레드를 직접실행할 클래스 형태가 필요하다. 아래의 ThreadManager 는 구차한 Worker 생성과정을 미리 생성하고 Thread 객체를 관리하는 매니저 역할이다. 또하나의 Worker1 클래스는 쓰레드 개체가 생성하게될 , 즉 쓰레드가 수행할 내용이다. 아래의 실험은 같은 개체를 동시에 실행 하였을때 쓰레드 블럭킹이 발생하는지 실험하는 코드이다. * ThreadManage.. 더보기
[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 에서 정확히 정의된 스트링을 받아 처리 한다면 아무런 문제가 없다.. 더보기
[TwitPic 모듈] 트윗픽을 손쉽게 활용하자 사용법 소켓 IP : 로컬 (127.0.0.1) 소켓 포트 : 55667 명령전송 (헤더) : 256 바이트 헤더에 "$ID:"+$id+"$PW:"+$pw+"$USERID:"+$userId+"$TEXT:"+$text; 나머지 남는 바이트는 공백 " " 처리 를 하여 256 바이트를 채운후 256바이트 이후 JPG , PNG 포멧을 싣어 보낸다 제약사항 : 이미지파일이 4MB를 넘지 않을것, 같은 아이피로 시간당 500번 이상 포스팅 금지 * TEST Flash App 버튼 클릭시 테스트용 플래시 어플이 실행됨 Flash AS3 용 라이브러리 활용법 var target : FileReference = event.currentTarget as FileReference; var send : simple_twi.. 더보기
[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.. 더보기
[SimpleFileWriter] AS3 에서 파일을 저장하자 기존 의 http://www.scripter.co.kr/entry/Simple-Text-Writer-V01-간편한-파일-쓰기-어플 를 업그래이드 해봤다. 예전에는 Text 만 되는 반면 이번꺼는 모든 As3 의 ByteArray를 죄다 기록할수 있다. 사용법 as3 package { import flash.display.BitmapData; import flash.utils.ByteArray; import jjongun.server.file_Socket_Server; import flash.display.Sprite; public class Main extends Sprite { public function Main() { var sp : Sprite = new Sprite(); sp.graphics.b.. 더보기
[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 기타 등등.. .. 더보기
Socket 에 Header 정보와 같이 묶어 보내기 정보를 보낼때 헤더는 참 유용하고 필수적이다. 편지를 쓴다고 생각하자면, 받는사람 , 주소 , 우편번호 등등이 헤더에 해당할것이고 , 동내 구멍가게에서 라면을 사더라도 , 이라면이 무슨라면인지 , 매운맛인지 순한맛인지 ,조리법은 어떻 게 되는지 등등이 해더에 해당하는 정보라고 생각한다. 이처럼 무언가를 보낼때 이것이 어떠한 것이다 라는것을 표현할때는 조금은 바이트 배열을 이해할 필요가 있다. as3 에서는 ByteArray에 해당할것이고 , c# 에서는 Stream 등에 해당할것이다. 그리고 해더는 Text로 읽을수 있는 정보일것이고, (물론 어느 오브젝트 바이트 배열로 하겠다면 구지 텍스트가 아니어도 된다. ) 컨텐츠 영역은 Text일수도 있고 바이너리 일수도 있다. 문제는 없다. 뭐 어찌되었든 바이트.. 더보기
[TCPSocket] 안전한 Socket 연결과 버퍼데이터를 설정한 데이터전송 (C# <-> As3) 소켓사용을 꺼려하는 이유중 하나는 연결의 지속성을 보장하기가 까다롭기 때문이다. 또한 그것을 서로 스로스 체킹 하는 코드를 작성하기가 번거럽기 때문이기도 하다. 하지만 생각을 바꾸어 왜? 소켓을 항상 연결시켜 놔야 할까? 물론 실시간 데이터전송 같은경우 , 즉 마우스 좌표에 따라 무었을 지속적으로 움직여야 한다거나 하는 실시간적인 반응이 필요한 경우로 생각할수 있겠다. 하지만 데이터의 전송, 어느 순간 상태의 알림 등등의 경우에는 연결을 지속적으로 유지해야 할 필요가 없다. 본 모델은 이미 SimpleTextWriter (http://www.scripter.co.kr/entry/Simple-Text-Writer-V01-%EA%B0%84%ED%8E%B8%ED%95%9C-%ED%8C%8C%EC%9D%BC-%.. 더보기
[AxShockwaveFlashObjects] AS3 in C# http://www.scripter.co.kr/entry/FlashExternal-c-안에-as3-AVM2-넣기 에서 같은주제를 아주 예전에 다루었지만 내용이 너무 부실하고, 철없었기 때문에 보강을 해야겠다. 사실 구글에 많이 올라와 있는 "AxShockwaveFlashObjects" 관련글들을 그대로 따라했다가는 이유도 모르는 FileNotFoundException 이 나올것이다. 그런 분들은 아래의 DLL 을 사용하기 바란다 . 코드를 살펴 보겠다. c# Created with colorer-take5 library. Type 'csharp' using System; using System.Collections.Generic; using System.ComponentModel; using System.. 더보기
[AS3 , C# ,Serialize]AS3 와 C#의 직렬화 비교 [AS3 , C# ,Serialize]AS3 와 C#의 직렬화 비교 먼저 As3.0( AIR2.0 ) 이다 as.swfcsharp.swf Created with colorer-take5 library. Type 'csharp' //c#�� [Serializable] 와 비슷한 개념 [RemoteClass] public class Test { private var _str:String = "test"; public function Test() { } public function get str():String { return _str; } public function set str(value:String):void { _str = value; } } //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.. 더보기
[Draw Line Algorithm] 1. 기본(2) 총정리 [Draw Line Algorithm] 1. 기본(2) 총정리 by superSC 2010/01/06 14:20 scripter.egloos.com/2302052 덧글수 : 0 우선 직선의 방정식은 위와 같다. (공통수학의 정석 554p) 두점 p1 , p2 을 알고 있을때 두점의 방정식이다. m 은 기울기 이다. 즉 x점과 y점의 변화량이다. 그리고 이 공식에는 x1 과 x2는 같지 않을때 이다. 이때는 값이 무한대가 되거나 에러가 난다. 그래서 적절한 예외 처리를 해주어야 한다. 공식을 적용하여 보면 우선 기본적인 m이 -1보다 크고 1보다 작을때 이다. for 루프로 찍혀질 점(자취) _x의 영역을 잡고 범위 안에서 자취_y를 계산 하여 비트맵 데이터의 점을 찍는다. 이때 직선 방정식의 해의 범위가.. 더보기
[Draw Line Algorithm] 1. 기본(1) [Draw Line Algorithm] 1. 기본(1) XNA 에 별다른 비트맵 API가 없다는것을 알고 , 한번 픽셀을 다루기로 했다. 우선 브레슨햄 알고리즘 에 들어가기 전에 일반적인 선을 그리는 알고리즘을 살펴 보아야 하겠다. 먼저 우리가 비트맵에 선을 긋기 위해서는 일반적으로 두점을 필요로 한다. (물론 한점과 기울기를 이용할수도 있겠지만 특별한 경우가 아니라면 정확한 포인팅이 가능한 두점을 이용한다) 우선 고등학교 기초 수학에 보면 두점을 알때 직선 방정식은 .. (공통수학의 정석 p554) p0(x0 , y0) 와 p1(x1,y1) 을 알때 직선의 방정식은 Y - y0 = ( y1 - y0 / x1 - x0 ) * ( X - x0) (단 , x1 != x0) 이러하다. 기본적인 Y = m*X .. 더보기
[회전변환] 특정좌표를 중심으로 회전변환 [회전변환] 특정좌표를 중심으로 회전변환 by superSC 2009/09/10 10:19 scripter.egloos.com/1618411 덧글수 : 2 점 S 를 중심으로 점 P 를 R 만큼 회전 하였을때 P' 의 좌표를 구하는 공식! 회전변환 행렬을 보면 이러하다,. 그리고 이것을 정리하면 x' = (x-a) * cosR - (y-b)sinR y' = (x-a) * sinR + (y-b)cosR 이것을 메소드로 만들면.. private function init():void { //특정 오브젝트 sp 의 원래 좌표 sp.x = 100 sp.y = 100 var ob:Object = transformation(0,0,sp.x,sp.y,30*Math.PI/180) trace(ob.x , ob.y) sp... 더보기
[PageFlip] Foxy의 PageFlip을 이용한 책갈피 영역의 제한 로직 [PageFlip] Foxy의 PageFlip을 이용한 책갈피 영역의 제 by superSC 2009/06/25 16:23 scripter.egloos.com/1536006 덧글수 : 0 pt(1,1) 의 위치 기준으로 포인트를 제안하면 색깔영역과 같다. 이 영역에는 2개의 원의 자취가 필요하다. square 의 밑변을 x 축으로 보면 작은원의 양(+) 의 부분을 벗어나면 큰원의 음(-) 의 부분의 자취를 pt(1,1) 의 포인터가 따라가야 한다. foxy의 기본 알고리즘 이다. PageFlip.as //기본적 사용방법 var shape:Shape = new Shape var bmd0:BitmapData = new BitmapData(WID , HEI,false ,0xcccccc) var bmd1:Bit.. 더보기
원의 자취 구하기 원의 자취 구하기 수학 by superSC 2008/12/27 01:02 scripter.egloos.com/1271526 덧글수 : 0 각도 sin(angle) = 높이(b) / 빗면(c) 각도 cos(angle)= 밑면(a) / 빗면(c) 밑면(a) = cos(angle)* 빗면(c) 높이(b) = sin(angle) * 빗면(c) p1.x = cos(angle) *빗면(c) p1.y = sin (angle) *빗면(c) 기초에 충실하자! 고등학교때 '얼싸안코' 가 생각난다. 또한 이를 응용하여 가로 세로 값을 알고 있을때는.. tan( angle ) = height/width 이고 , 각을 알기 위해 tan 를 넘겨야한다. ( angle ) = atan( height/width ) 넘길때는 tan의.. 더보기
[drawTriangles] 가장?쉬운 삼각형 응용 예제 testTriangle.zip 테스트 코딩이다. 더보기
[bitmapData Capture] stage capture 시 유의점 상황은 트위너로 5개의 cicle을 랜덤하게 트위닝 하고, 그것을 엔터프레임으로 비트맵 데이터로 캡춰를 하는 상황이다. 그리고 엔터프레임 안에는 기본적으로 아래와 같이 작성을 한다. //in EnterFrame capture = new BitmapData(stage.stageWidth, stage.stageHeight , false ,0xd0d0d0) capture.draw(stage) // 그럼 결과는 하지만 이것은 원하는결과가 아니다. 잔상이 없는 결과를 원하면 스테이지에 바로 addChild하지말고 컨테이너를 하나 만든다음 해줘야 한다. //in EnterFrame capture = new BitmapData(stage.stageWidth, stage.stageHeight , false ,0xd0d.. 더보기
[Simple Text Writer V0.1] 간편한 파일 쓰기 어플 간편한 파일 쓰기 어플 client code (AS3) flush 규칙! 파일경로(filePath):::내용(content) + "\n" (':::' 요걸로 파일경로와 내용을 구분합니다.) ex >> "c:\\sampleFolder\\childFolder\\content.xml" +":::" +xml.toString() +"\n"; 그냥 자기 컴퓨터에서 돌아가는 로컬용 입니다.(웹은 당연 안돌아가겠죠) 대용량은 테스트 안해봤습니다. 하루 종일 돌려보진 않았습니다. 피드백은 덧글로.. 버전업은 할수 있을지. ,, 과연 = =; 옵션도 넣고 하려 했지만.. 일을 줄이기 위해 만드는건데, 이게 더 일이 될것 같아서 딱 필요한것만 구현했습니다. 더보기
[socket] c# server , as3 client pc1 ( server ): c# (windows 7) pc2 ( client ) : AS3 (windows xp) c# code (partial) Created with colorer-take5 library. Type 'csharp' /* * SharpDevelop으로 작성��었습니다. * 사용자: jjongun * 날짜: 2010-02-09 * 시간: ��전 9:05 * * */ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.Threading; using System.Net.Sockets; using System.Net; using System.IO.. 더보기