Study/Actionscript 3.02009. 2. 16. 20:29
Array에 대한 연습을 해봅니다.

Package      Top Level
Class           Public dynamic class Array
Inheritance Array --> Object


일반정의
배열 : 배열하다 --> 나열하다 ---> 줄세우기 ::: 개수가 많을 경우, 쉽게 컨트롤 하기 위해 사용한다.
배열의 각 성분 --> 원소 :: 원소의 구분은 컴마

오늘 알아야 할 핵심문법
trace(arr.length);                     배열의 길이  
trace(arr.join());                      각 원소를 연결하여 하나의 문자열로 만들기
trace(arr.join("-"));                 각 원소를 "구분자"로 연결하여 하나의 문자열로 만들기
arr[4]="코끼리";                    배열 추가하기
arr.push("당나귀");                배열 마지막에 배열 추가하기
var arr2:Array=str.split("-");  "구분자"로 문자열을 분리하여 배열로 만들기










===========================

Posted by chacolina
Study/Actionscript 3.02009. 2. 16. 20:02
유고나카무라 홈페이지에서 볼 수 있는 Type을 구현해봅니다.
(복수 문자간의 이동)


핵심원리
1. start type(임의의 시작문자)과 final type(최종적으로 보여주고자 하는 문자열)을 지정한다. ( 우리는 "-"와 "superman"로 합니다.)
2. superman의 각 문자를 배열을 이용하여 저장한다.
3."--------" =>"superman" (목적-->종착 ) 두 문자를 유니코드로 변경한다.

3. 각 문자에 순차적으로 deley를 주어 단계적으로 변환하도록 한다.
(0번째 배열의 이동시작 x초 후 1번째 배열 이동시작 ) 즉 ("-"=>"s"
, "-"=>"u","-"=>"p" 의 이동이 x초 간격으로 일어난다.)
4. 유니코드를 다시 문자열로 변화해서 화면에 표시

** 하단의 debugging 결과를 보면 순차적으로 코드이동이 있음을 확인 할 수 있다.

==================================
http://www.yugop.com/








Posted by chacolina
Study/Actionscript 3.02009. 2. 16. 19:29
유고나카무라 홈페이지에서 볼 수 있는 Type을 구현해봅니다.
(단일문자간 이동)

핵심원리
1. start type(임의의 시작문자)과 final type(최종적으로 보여주고자 하는 문자열)을 지정한다. ( 우리는 "-"와 "z"로 합니다.)
2."-" ---->"z" (목적-->종착 ) 이동을 하려면 꼭 숫자값이 필요하므로 각 문자를 유니코드로 변경한다. ("-" ---->"z"를 35 ----> 99 로..)
(50-->1000와 같은 순자값은 순차적으로 이동하면 되지만 문자열은 숫자체계로 바꿔줘야 한다.)
3. 35부터 1씩 증가시키면서,99까지 이동하도록 코딩.
4. 유니코드를 다시 문자열로 변화해서 화면에 표시 (35에 이어 36을 읽으면 다시 36을 해당 문자열로 변환하여 화면에 표시한다.)



==================================
http://www.yugop.com/





Posted by chacolina
Study/Actionscript 3.02009. 2. 15. 21:20
URLLoader 클래스는 URL에서 텍스트, 이진 데이터 또는 URL 인코딩된 변수 형식으로 데이터를 다운로드합니다. 이것은 텍스트 파일, XML 또는 동적 데이터 기반 응용 프로그램에서 사용되는 기타 정보를 다운로드할 때 유용합니다.


Package : flash.net
Class : public class URLLoader
Inheritance : URLLoader - EventDispatcher - Object


URLLoader : 주문자
데이터가 도착하고 나면, 주문자의 손에 데이터가 들어간다. ...urlLoader.data
1. Data가 도착하면 먼저 complete로 받고
2. urlLoader. data로 도착한 Data가 들어간다.
3.URL 경로명에는 URLRequest가 들어간다.
4.URLRequest는 택배아저씨정도로 이해하면 된다.
5.3.0에서는 URL을 연결할 경우 항상 URLRequest로 링크를 걸어준다.
(참고) 이미지를 로드할 때는 Loader, 데이터를 로드 할 때는 URLLoader를 쓴다 비교하여 공부해본다.

       




Posted by chacolina
Study/Actionscript 3.02009. 2. 15. 19:07
XML은 쓰기쉽기 때문에 많이 사용. 웹 2.0 데이터 통신은 XML을 위주로 하므로 잘 알아두어야 합니다.


E4X : EmacScript for XML ---->.(dot)으로 서술하는 방식을 말한다.
(데이터기반 프로젝트인 경우 이 방식으로 제작하지 않으면 웹상에서 쓰기 불편하다.)

**'플렉스는 기본적으로 XML 파서와 XML 을 처리할 수 있는 E4X(ECMAScript for XML) 와 같은 편리한 API 를 제공하므로 XML 로 리턴되는 데이터는 쉽게 처리하여 화면으로 보여줄 수 있다.'

- 예제로 배우는 Adobe 플렉스 2

**'E4X 를 사용하면 XML 을 마치 일반적인 오브젝트를 다루듯 사용할 수 있다. 다음과 같이 오브젝트의 속성에 접근하는 방식과 유사한 방식으로 각 요소 노드에 접근할 수 있다.'
- Flex 3 Knoehow Bible

XML의 특징

1. 노드(node), 엘리먼트(element ) : <노드명>값</노드명>

2. 최상위노드는 1개만 존재해야 한다..
3. 같은 노드명이 중복되면, 배열처럼(XMLList) 처리한다. (실제 배열은 아니나 배열처럼 처리하는 것이다. 이를 XMList라 함)
4. <font  size='20'>호랑이</font> 에서 size는... attribute라 한다.


XML 표기법

var  xml: XML = new XML:
var  xml: XML = <main> 

두 표현 모두 가능하다.




==========================
*E4X란?
*The E4X approach to XML processing
*
Flash.xml
==========================








Posted by chacolina
Study/Iphone_SDK2009. 2. 15. 03:22
아이튠즈 미국계정 만들기(1) (미국계정생성) 클릭
아이튠즈 미국계정 만들기(2) (한국카드결제) 클릭

우리나라 계정으로는 사용상 제약이 많기 때문에 미국계정을 사용하는 것이 좋다.
문제없이 미국계정을 만들려면 몇가지 단계가 필요한데 위의 블로그를 방문하면 상세하게 기술되어있다.
Posted by chacolina
Study/Maxmsp&jitter2009. 1. 27. 16:50
Study/Iphone_SDK2009. 1. 13. 17:52

OOP의 3개의 기둥  Encapsulation , Inheritance , Polymorlphism

1. Encapsulation - 클래스 내부의 정보를 외부에서 감춘다
2. Inheritance - 상속, 중복된 코드를 최대한 제거한다.
3. Polymorphism - 중복제거를 위해서 상속을 받았는데 , 파생된 클래스는 같은 이름의 메소드로 다른 행동을 하고 싶다.


1. Encapsulation
캡슐화의 최대의 목적은 클래스의 내부의 내용이나 구현을 외부에게 감추어라, 이다.  왜? 클래스 내부의 구현을 외부에 감추어야 할까? 클래스란 실세계 오브젝트가 추상화된 개체이다.
집 이라는 클래스 개체에 '출입문번호'라는 개체가 있을때 , 그 집에 사는 사람(클래스 내부의 멤버)는 출입문 번호를 알아야할 필요가 있지만, 대한민국의 모든 사람이 우리집의 출입문 번호를 알게 된다면 , 우리집이 안전해 지지 않는다.

하지만, 클래스는 다른 클래스와 이야기를 할 필요가 있다. 예를 들어 친구가 집에 놀러 왔는데 나는 밖에 있다. 친구는 우리집 '출입문번호'를 알고 있을 필요가 없지만, 집에 들어가서 기다리라고 말할때에는 친구에게 번호를 가르쳐 줄수가 있어야 한다.
이럴때에 인터페이스의 한가지 인 public 한정자로 외부에 정보를 공개하는 것이다.

다시 정리를 하자면, 클래스에서 일을 하기 위해서는 멤버변수(field)가 있어야 하며, 기본적으로 private으로 사용한다. (C#에서 한정자를 정의 하지 않으면 기본값이 private인 이유가 바로 이 때문이다.)
외부에 정보를 공개해야할 필요가 있다면 public 한정자의 property의 get, set을 이용하여, 외부에 노출하면 된다.

그럼, 행동(method)의 경우에는 어떨까, '나'라는 클래스가 있을 때 , '화장실에간다' 라는 메소드가 있다고 가정하자, '화장실에간다'라는 method를 외부에서는 알필요가 없다, 나의 내부의 행동을 정의 하는 것을 private 한정자로 외부로 부터 감춘다.
외부에서 '나'에게 말을 걸어야 할 필요가 있다면, 이는 public method로 선언 되어야 할 것이다.

클래스 내부의 메소드들 사이에서도 서로가 알아야할 필요가 없다면, 서로가 모르게 하는 것이 내부 구현의 수정에 더욱 용이하다.


2. Inheritance
여러개의 객체를 정의하다보면 , 거의 같은 멤버변수와 멤버메소드를 가지는 클래스가 생겨 날 수 있다.
이런 경우에 중복(duplicate) 코드가 많이 생성되게 되며, 이는 나중에 유지관리 하게 될대, 또는 구현이 변경될 때 장애물이 된다.
이런 경우를 제거하기 위해 중복 변수나, 메소드를 상속으로 생성한다.
상 속을 이용하면 클래스의 일관성 유지에도 도움이 된다.  주의할 점, 상속은 코드 중복을 제거하고, 구조를 일관성 있게 가져가는 중요한 도구이지만, 파생관계가 명확하지 않은 객체에 상속을 적용하면, 관리할수 없을 정도로 복잡성이 높아진다.
상속을 사용할때에는 생각보다 많은 검토가 필요하다.

3. Polymorphism
 다형성은 같은 형태의 객체가 여러가지 형태의 모습으로 작동한다, 는 뜻이다. 언뜻 이해하기가 어려운데, 부모 클래스가 있고, 상속을 받아 구현된 클래스들이 있다면, run-time 시에 인스턴스를 서로 교환해서 일을 할수가 있다.
이를 외부에서 볼때에는 같은 클래스 인스턴스로 보이는 녀석이 다른 녀석으로 바뀌어 있는 것이 된다.

class Car{
protected int speed;
public void Start()
{
 //시동을 건다.
}

public void Stop()
{ // 시동을 끝다.}

// 기본 Car 클래스는 속도가 5씩 증가 된다.
public void SpeeedUp(){ speed+=5;}

}


//상속 받은 SportsCar 는 속력이 10씩 증가한다.
class SportsCar:Car
{
public new override SpeedUp(){ speed+=10;}
}

//상속 받은 Truck은 속력이 2씩 증가한다.
class Truck:Car
{
public new override SpeedUp(){ speed+=2;}
}

SportsCar와 Truck은 speed 멤버와 , Start(), Stop()을 명시적으로 코딩하지 않았지만  Car로 부터 상속받음으로써 명시적으로 코딩한 것과 같다.

하지만 빠른 스포츠카는 SpeedUp()이 실행될때 Car로 부터 생성된 인스턴스와는 다르게 속력이 10씩 증가하며, 느린 Truck은 가속페달을 밟을 때 2씩 증가 한다.


이처럼 위의 3가지는 OOP를 구현하는 강력한 도구이다. 이 도구를 적절하게 이용하는 방법은 계속되는 포스트에서 알아보자 ^^

Posted by chacolina
Study/Actionscript 3.02008. 9. 4. 20:44

흠..........열공....

Posted by chacolina
Study/Actionscript 3.02008. 9. 4. 20:12
Posted by chacolina