it leader
article thumbnail
AS3.0 NativeWindow 관련 메서드 정리

desktop application 개발을 할 때 window 에 관련된 명령어에 대해 정리한다. nativeWindow는 데스크톱 운영체제만을 지원하며, 휴대기기 또는 TV 장치는 지원하지 않는다. nativewindow 속성을 사용하려면 NativeWindow 클래스를 import 해야된다. 또한 NativeWindowInitOptions 를 최초 지정을 해주어야한다. 윈도우 닫기 nativeWindow.close(); 윈도우 최대화 nativeWindow.maximize(); 윈도우 최소화 nativeWindow.minimize(); 윈도우 원래대로 nativeWindow.restore(); 소스코드 import flash.display.NativeWindow; import flash.display..

x 값과 y값을 정확히 사용하기

x 값과 y 값이 약간의 오차가 있으므로 세밀한 컨트롤이 필요한 경우에는 변수를 둬서 Number로 계산한 뒤에 x, y값에 대입을 해주는 것이 정확도가 올라간다. red.x = p0.x;red.y = p0.y; var v : Number = 0.5; red.xx = red.x = p0.x;red.yy = red.y = p0.y; red.addEventListener( Event.ENTER_FRAME, onRedEnter); function onRedEnter( e: Event) : void{var dx : Number = p1.x - p0.x;var dy : Number = p1.y - p0.y; var rad : Number = Maht.atan2( dy, dx); var vx ; Number = v..

arr unshift 와 배열 자르기

var arr : Array = [ 2,3,4,5,6,7,8,9,10 ]; trace( arr.join() ); ==> 2,3,4,5,6,7,8,9,10arr.length = 5 trace( arr.join() ); ==> 2,3,4,5,6 arr.unshift( 0 ); trace( arr.join() ); ==> 0,2,3,4,5,6 arr.length = 5 trace( arr.join() ); ==> 0,2,3,4,5

false 를 true로 true를 false로 바꾸기

var aaa : Boolean = true; trace( aaa); aaa = !aaa;==> true 를 false로 false를 true로 바꿔주는 함수 ==> 다음과도 같게 사용할 수 있다 if( aaa == true){ aaa = false;}else{ aaa = true;}

배열의 원소 비교하기 알고리즘

var arr1 : Array = ["너구리","호랑이","망아지"];var arr2 : Array = ["고양이","말미잘","너구리"];var arr3 : Array = ["호랑이","망이지","너구리"];var arr4 : Array = ["말미잘","너구리","호랑이","고양이"]; 1. 두배열의 모든 원소가 동일한지 여부를 판단하는 함수 만들기 1) 각 배열의 원소끼리 비교하여 동일 갯수가 3개 이면 true를 반환하는 함수 - 2중 for 문 function isEqual( arr1 : Array, arr2 : Array ) : Boolean{var n1 : int = arr1.length;var n2 : int = arr2.length; var cnt : int = 0; if( n1 != n..

file 객체 관련 예제 ( file 객체, byteArray, PNGEncoder를 이용한 png 저장하기 )

file 객체 관련 명령어 var file : File = new File(); file.addEventListener( Event.SELECT, onSelect);file.browse(); function onSelect( e: Event) :void{trace( file.name); // 파일 이름 ※중요trace( file.creationData); // 생성 날짜trace( file.data); // 아직데이터까지 불러들인건 아니라 data nulltrace( file.exists); // 존재하는가? true/ falsetrace( file.extension); // 확장자trace( file.name.split(".").pop() ); // 확장자 가져오기 trace( file.icon);tr..

객체 재활용하기 ( arrow 재생성 )

class {private static var arrowList : Arroy = []; public fuinction Arrow(){this.addEventListener( Event.REMOVE_FROM_STAGE, onRemove);} private function onRemove( e: Event ) :void{arrList.push(this);} public static function getArrow():Arrow{if( arrowList .length > 0 ){return arrowList.pop() as Arrow;trace( "이미 있어서 재활용하기");}else{return new Arrow();trace("없어서 새로 생성하기");}}}var arrow : Arrow = Arrow...

substr 활용하기

subStr( 시작열, 표시갯수 ) 표시갯수를 적지 않으면 무제한으로 표기한다. substr ( 0 , -1 ) ; string 열을 뒤에서 하나를 제거한다.

Vector 장,단점

array ==> 어떤 원소도 들어갈 수 있다==> 단점 안에 무었이 있는지 확인하려면 직접 찾아봐야 한다. var _arr : Array = [ "사람", 0, n, _mc];if( _arr[0] is String){trace(" _arr[0]은 String이다.");}else{trace("_arr[0]은 String이 아니다.");} Vector==> 어떤 원소로 구성되어 있는지 예측할 수 있다.==> 구성될 클래스를 new 될 때 받는다. var _a: Vector. = new Vector.();_a.push(1);_a.push("aaaa");trace(_a[ 1]); // "aaaa"를 int로 강제 변환하면서 실패, 기본값 0으로 설정 var _b:Vector. new Vector.();_b.p..

이미지 폰트 사용방법 및 폰트 관련

이미지 폰트 사용하기 1. 폰트 Class 생성 - 라이브러리 -> AS Linkage- 폰트 (글리프) 범위 설정 2. 폰트를 등록 - Font.registerFont()를 통해서 등록- 만약에 폰트명이 안맞을 경우에는 따로 확인이 필요- var _font : Font = new 폰트 클래스명 ()trace(_font.fontName); 3. TextField에 여러가지 설정 - .embedFonts- .setTextFormat() + TextFormat- .defaultTextFormat + TextFormat- .htmlText- 태그가 사용- color- size- face- .autoSize- TextFieldAutoSize.LEFT . RIGHT, CENTER package { public c..

article thumbnail
채팅 서버 ( SmartForServer를 이용한 게임 서버 만들기 )

Server ( 메일 서버, ftp서버, 채팅 서버, 게임 서버, DB 서버) Client ( 손님) zone : 여러 형태의 서버가 필요하므로, SFS에서 여러 zone을 준비해놓았다.Roomsochet : 접속BroadCast : Room 안의 모든 유저에게 정보를 전달하는 것 서버에 접속하면 아래와 같은 메세지가 뜬다. recieved로 처음에 xml로 넘어오는데 xml data를 쭉 풀어 보면 아래와 같은 정보가 넘어온다. 룸리스트 정보를 보고 싶으면 SFSEvent.onRoomListUpdate 메로드를 이용하여 다음과 같은 함수를 작성한다. room 은 오브젝트 형태이므로for문 보다는 for in문으로 작성하여야 한다!! 그리고 trace로 위와 같은 여러 메소드를 이용하여 정보를 받아 볼 ..

setTimerOut / setInterval 타이머 사용법

setTimerOut 타아머 function printTime( v : int, z : String) : void{trace("PRINT",v , z ); } setTimerOut ( pritTime, 1000); //1초 뒤에 인자로 선언된 함수가 호출 됨 var _timeoutID : uint = setTimeOut(printTime, 10000, 12, "sss"); clearTimeouot(_timeoutID); // 예약이 해제됨 setInterval 타이머 function printTimer2() : void{trace(" PRINT2"); if( _intervalCount ==3){clearInterval(_intervalID); // intervalID 만큼 진행되면 interval을 cl..

SingleTon 구조

SingleTon - 클래스를 딱 한번만 생성시키는 구조 - new 로 생성하는 것을 원천적으로 봉쇠시키는 방법 ex) 상점 화면 SampleView1 == getInstance 예제 publc class SampleView1 extends Sprite { private static var _instance : SampleView1;public static function getInstance() : SampleView1{if(_instance != null) return _instance;_instance = new SampleView1(); return _instance;} public var age : int = 20;public var weight : Number = 50; public funct..

Dynamic 클래스 , 오브젝트 클래스의 변수 사용법

내가 만든 클래스를 다이나믹 클래스 처럼 사용하고 싶을 떄 package{dynamic public class "" // 클래스 앞에 dynamic을 붙여준다{ ※ 주로 사용되지는 않는다. 다음과 같은 dog라는 클래스가 있을 때 package{dynamic public class Dog(){public var age: int = 2;public var name : String = "";public var weight : Number = 20; public function Dog(){ }}} var obj : Object = {};obj.age = 50;obj.name = "해피";obj.weight = 20; var dog : Dog = new Dog();var xml : XML = describeTy..

Setter / Getter의 사용

1. 읽기 전용, 쓰기 전용2. 어떤 값이 변경 될 때, 연쇄적인 처리가 가능하다. -> 기존에 배포된 코드가 변경 되면서3. 기능을 마비 시킬 때4. 새로운 기능에 대한 학습/ 배포 없이 구현하고 싶을 때 재정의 // x 값은 소수점 한자리까지만 지원을 한다// 그러므로 x값에서 소수점 두자리 이상의 값을 집어 넣기 위해서는// 아래와 같이 x값에 대한 재정의가 필요하다. private var _x : NUmber;override public function set x(value :Number) :void{thi.s._x = value;super.x = value; // 부모 클래스에 있는 set x를 호출} override public function get x() : Number{return _x}

stage 접근 ( displayList / OffList )

this.stage는 나의 parent.parent.parent. ..... stage를 만날때까지 올라가서 만나면 그 때 반환 나의 모든 부모가 addChild() 된 상태일 경우에만 접근 가능 displayList 에 있다. - 화면에 보이는 객체들은 displayList에 있다고 표현함.- 나의 모든 부모가 addChild() 된상태 offList 에 있다.- addChild하지 않은 객체들은 offList 에 있다고 표현함.- 나 혹은 부모들 중 하나라도 removeChild() 된 상태 for( var i : int = 0 ; i < 10 ; i++){var d : Dog = new Dog();arr,push(d); // offList에 dog 10개 생성} for( i = 0 ; i

AS 이미지를 불러오는 방법 이론

이미지를 불러오는 방법 1. loader를 생성 2. loader로 request 를 요청 3. bitmapData를 생성 4. bitmapData를 가지고 loader 정보를 draw 한다 5. bitmap 액자 안에 draw 된 bitmapData를 집어 넣는다 6. bitmap 액자를 root에 addChild 한다. var _loader: Loader = new Loader();addchild(_loader); var _request : URLRequest = new URLRequeset("./img/img0.jpg"); _loader.load(_request); _loadr.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); func..

dictionary

Dictionary 많은 양의 데이터를 관리하기 위해서- 배열 Array - 오브젝트 Object- 객체 자체가 키가 되는 것 ( Dictionary) 배열의 key는 번호이다!!- 배열의 번호에 의해서 데이터를 관리 var arr: Array = []; arr[0] = 5;arr[1] = 100;arr[5] = 200; trace(arr[3]); 오브젝트는 키로 문자열을 이용! var obj: Object = new Object(); obj.aaa = 20; obj["aaa"];obj.bbb = 30; obj["bbb"];obj.ddd = 50; obj["ddd"]; Dictionary

화면에 addChild된 오브젝트 들의 Arrage 에 관련된 메소드

화면에 addChild된 오브젝트 들의 Arrage 에 관련된 메소드 numChildren : addChild 된 개수를 세기 getChildindex() : child의 인덱스 번호를 가져오기 setChildIndex() : Child의 인덱스 값을 주기 ex) setChildIndex(mc4,0); 0이 가장 바닥에 깔린 오브젝트숫자가 커질수록 그 위에 덧붙여진다. swapChildren(mc1, mc4); : 인자들의 위치를 바꿔준다 removeChildAt() : 0

배열 관련 이론( indexOf)

배열.indexOf(원소 ) -> 배열에서 '원소'를 검색해서 번호를 반환 ex) var arr : Array = [1,2,3,5,7]; trace( arr.indexOf(5)); ==> 3 원소에서 배열에 값이 없는 원소값을 입력하면 -1 로 출력