Search Results for '분류 전체보기'

41 POSTS

  1. 2009.06.09 AS 2.0 유용한코딩
  2. 2009.06.02 intrinsic 문
  3. 2009.06.01 FlashLite3.0 최적화 관련 Tip
  4. 2009.03.20 무료강의 해외유명대학 사이트
  5. 2009.03.16 RegExp () 생성자
  6. 2009.03.14 ECMAScript4
  7. 2009.03.12 IExternalizable
  8. 2009.03.12 시간과의 8가지 맹세!
  9. 2009.03.09 키워드 및 예약어
  10. 2009.03.04 updateAfterEvent, forEach (2)

AS 2.0 유용한코딩

Posted 2009.06.09 15:53

while ( imgAry.length ) imgAry.pop().removeMovieClip();

while문을 활용하여 imgAry 배열에 넣어두었던 무비클립을 remove시킨다!!

var imgAry:Array;
if( ! imgAry ) imgAry = [];

imgAry 가 생성이 되지 않았을때 if문을 활용하여 생성한다~
Write your message and submit

intrinsic 문

Posted 2009.06.02 18:23
이전에 정의된 클래스에 대해 컴파일 타임에 유형을 확인하도록 설정합니다.
Flash 에서는 intrinsic 클래스 선언을 사용하여 Array,Object, String 등의 내장 클래스에 대해 컴파일 타임에 유형을 확인할수 있도록 합니다. 이 키워드는 함수 구현이 필요하지 않으며 바이트코드도 생성되지 않는다는 것을 컴파일러에 알려줍니다.

intrinsic 키워드는 변수 및 함수 선언과 함께 사용할 수도 있습니다. Flash에서는 이 키워드를 사용하여 전역 함수 및 속성에 대해 컴파일 타임에 유형을 확인할 수 있도록 합니다.
정의된 클래스에 대해 컴파일 타임에 유형을 확인하려는 개발자에게 유용할 수 있습니다.

이 키워드는 외부 스크립트 파일에 사용되는 경우에만 지원되고 액션 패널에서 작성된 스크립트에는 사용할 수 없습니다.!!


// 다음 코드는 클래스 경로 내에 있는 Circle.as라는 파일에 
// 배치해야 합니다.
intrinsic class Circle {
 var radius:Number;
 function Circle(radius:Number);
 function getArea():Number;
 function getDiameter():Number;
 function setRadius(param_radius:Number):Number;
}

// 이 ActionScript 1.0 클래스 정의는 FLA 파일에 배치할 수도 있습니다.
// Circle 클래스는 ActionScript 1.0을 사용하여 정의됩니다.
function Circle(radius) {
 this.radius = radius;
 this.getArea = function(){
 return Math.PI*this.radius*this.radius;
 };
 this.getDiameter = function() {
 return 2*this.radius;
 };
 this.setRadius = function(param_radius) {
 this.radius = param_radius;
 }
}

// Circle 클래스를 사용하는 ActionScript 2.0 코드
var myCircle:Circle = new Circle(5);
trace(myCircle.getArea());
trace(myCircle.getDiameter());
myCircle.setRadius("10");
trace(myCircle.radius);
trace(myCircle.getArea());
trace(myCircle.getDiameter());
Write your message and submit

FlashLite3.0 최적화 관련 Tip

Posted 2009.06.01 11:02
 
  1. Trace reports when publishing from Flash
  2. Optimize your assets, till you have sqeezed out every byte.
  3. Limit the amount of keyframes you use in the timeline
  4. Use TweenLite from Greensock for tweening assets
  5. Avoid at all times using timers or onenterrames
  6. Avoid using new variables inside a loop

  7. Check out JFSL  (Javascript-xFlash)
  8. Preprocess AS2 when you’re done http://www.asual.com/enlarge/
  9. Use feedback on buttons, audio and animation because there’s no rollovers in the mobile world
  10. Know your device…Sony Ericon keeps its own titlebar + toolbar, Nokia can go fullscreen…
  11. Don’t use alpha=0 or visible= false but use a blank keyframe! It stays in your memory and doesn’t get garbage collected otherwise

  12. When loading in external movies or assets when you unload them they will stay in the memory even when destroying everything…so just load in another asset within the same object to destroy it.

  13. Use the Nokia PC Test Suite software
  14. Use http://www.deviceanywhere.com/ to test your application on any network in the world.
  15. Data structure: Loading data cost money, load only data that is needed/displayed Always ON DEMAND
  16. Try to avoid large XML data(chunk it !!)XML versus &name=value pair ?

  17. Make sure you have control over the data. Messaging scheme: info/warning/error
  18. Media content mobile friendly (image/audio/video): use specific formats/bit rate,
  19. Use 3gp for video and .aac for audio. Flash Lite 3.x use .flv
  20. Use large devices sets to test on.
  21. Mobile users are used to certain UI layout and navigation. Refer to mobile UI guidelines from OEM
  22. Make sure navigation is clear & simple
  23. You MUST have an EXIT button

  24. Stay below 70% “Memory”, No Classes! -What? (Classes, consume memory)
  25. Memory allocated by OEM to the Flash Liteplayer check Device Central
  26. Memory fragmentation is a problem
  27. Garbage Collector (GC) uses memory (Runs every 60 seconds and for > 20% memory increase)

  28. 32 Kbytes rule
  29. Do not compress SWF
  30. Do not embed fonts
  31. “delete” global objects

  32. “null” variables, local objects
  33. Memory is freed when Object reference count = zero , otherwise Memory Leaks!
  34. Use multiple SWF architecture, unload movie clips to free memory
  35. Crash test in real scenarios: Home/bar/restaurant On the bus/metro/train.
  36. use http://demofone.com/ for presenting your mobile application

Write your message and submit

MIT - http://ocw.mit.edu

존스홉킨스 - http://ocw.jhsph.edu/?select=www

UCLrine - http://ocw.uci.edu

UC Berkeley - http://webcast.berkeley.edu

예일 -  http:///oyc.yale.edu

카네기 멜론 - http://cmu.edu/oli

Open University.UK - http://openlearn.open.ac.uk

유타주립대 - http://ocw.usu.edu

예일대 번역 사이트 - http://ocw.korea.edu.oyc

고려대학교 - http://ocw.korea.edu/
Write your message and submit

RegExp () 생성자

Posted 2009.03.16 00:17

RegExp () 생성자
public function RegExp(re:String, flags:String)

언어 버전:  ActionScript 3.0
런타임 버전:  AIR 1.0, Flash Player 9

두 문자열을 사용하여 일반 표현식을 구성할 수 있습니다. 문자열 하나는 일반 표현식의 패턴을 정의하고 다른 하나는 일반 표현식에 사용되는 플래그를 정의합니다.

매개 변수
re:String — 일반 표현식의 패턴으로, 생성자 문자열이라고도 합니다. 이 문자열은 일반 표현식의 주요 부분("/" 문자로 둘러싸인 부분)입니다.

참고:

  • 선행 및 후행 "/" 문자를 포함하지 마십시오. 이 문자는 생성자를 사용하지 않고 일반 표현식 리터럴을 정의할 때만 사용해야 합니다. 예를 들어 다음 두 일반 표현식은 동일합니다.
     var re1:RegExp = new RegExp("bob", "i"); 
            var re2:RegExp = /bob/i;
  • RegExp() 생성자 메서드로 정의한 일반 표현식에서 임의의 숫자에 일치하는 \d 같이 백슬래시(\) 문자로 시작하는 메타시퀀스를 사용하려면 백슬래시 문자를 두 번 입력합니다. 예를 들어 다음 두 일반 표현식은 동일합니다.
     var re1:RegExp = new RegExp("\\d+", ""); 
            var re2:RegExp = /\d/;

    첫 번째 표현식의 경우 백슬래시 문자를 두 번 입력해야 합니다. RegExp() 생성자 메서드의 첫 번째 매개 변수가 문자열인데 문자열 리터럴에서는 백슬래시 문자를 두 번 입력해야 단일 백슬래시 문자로 인식되기 때문입니다.

 
flags:String — 일반 표현식의 수정자입니다. 여기에는 다음이 포함될 수 있습니다.
  • g - String 클래스의 replace() 메서드를 사용할 때 첫 번째 일치 항목뿐 아니라 모든 일치 항목을 바꾸려면 이 수정자를 지정합니다. 이 수정자는 RegExp 인스턴스의 global 속성에 해당합니다.
  • i - 정규식이 대/소문자 구분 없이 평가됩니다. 이 수정자는 RegExp 인스턴스의 ignoreCase 속성에 해당합니다.
  • s - 도트(.) 문자가 개행 문자와 일치합니다. 이 수정자는 RegExp 인스턴스의 dotall 속성에 해당합니다.
  • m - 캐럿(^) 문자와 달러 기호($)가 이전 이후 개행 문자와 일치합니다. 이 수정자는 RegExp 인스턴스의 multiline 속성에 해당합니다.
  • x - re 문자열의 공백 문자가 무시되므로 가독성이 높은 생성자를 작성할 수 있습니다. 이 수정자는 RegExp 인스턴스의 extended 속성에 해당합니다.

flags 문자열의 다른 문자는 모두 무시됩니다.

Write your message and submit

ECMAScript4

Posted 2009.03.14 10:59

1. ES4의 역사

ES4는 자바스크립츠에 기초한 ES3를 기반으로 멀티 패러다임 언어로 진화합니다. 자바 스크립트는 1995년 Netscape에서 개발된 언어입니다.
1999년 ES3 스팩을 기반으로 ES4 스팩 설계가 시작되었습니다. 2003년에 중간 보고서가 릴리즈 되었습니다. 2003년 스팩은 어도브사의 액션 스크립트와 마이크로 소프트의 JScript.NET를 통해서 구현되었습니다.
ES3의 최종 구현물은 2005년 가을, ES3에 기초한 액션 스크립트와 JScript.NET를 통해서 소개되었습니다. ES4 스팩은 2008년 가을에 완료 될 예정입니다. 일부 TG1(Task Group1)는 ES4가 메인 ECMAScript 4로써 합리적이지 않다는 의견이 있었으나 ECMA 와 ISO에서는 표준으로 채택되기 위해서 만장 일치가 필요하지 않습니다. 따라서 ES4 표준으로 계속 제한되고 있는 상태입니다.

2.ES4

ES3의 유연성과 잘 다듬어진 추상화 도구에도 불구하고, 대형 소프트웨어 개발에 많은 부족함이 존재합니다. 대형 소프트웨어 개발에서는 정적 타입 체크, 이름 숨김, 이른 바인딩, 여타 최적화 훅킹, oop 지원과 같은 기술적인 요소가 필요하며, ES3는 대형 소프트웨어 개발에 많은 부분에서 부족합니다.
ES4는 기존 ES3와 호환성을 유지하며, 조금 더 대형 소프트웨어 개발에 최적화되도록 설계하는 것을 목적으로 합니다. 대형 소프트웨어 개발에 적합하도록 라이브러리 재사용성 극대화하기 위한 기술적인 장치 도움과 함께, 기존 언어들의 단점을 극복하고, 기존에 지향해오던 스크립트 언어로써의 쉬운 코딩을 유지하는데 목적을 두고 설계가 되었습니다.

3. 간략한 특징 소개

- 자바 스타일의 class 와 interface를 지원합니다.
- ES3에서 지원하던 모든 델리케이션 스타일 코딩을 지원합니다.
- ES4에서는 Lisp, Dylan, Cecil 스타일의 OOP를 지원합니다. 대표적으로 multi-method 메커니즘을 지원합니다.
- 연산자 오버로딩에 대해서도 multi-method메커니즘을 지원합니다.
- package와 namespace를 통해서 모듈성과 이름 숨김, 라이브러리 설계성을 극대화합니다.
- 타입 시스템 지원하며, 실행 성능을 향상하기 위해서 정적 타임 체크 방식과 이른 바인딩을 지원합니다.
- strict mode를 통해서 실행하기전에 타입을 결정하며, 정적 타임에 대해서는 별도의 정보 테이블이 필요없다.
- Type annotations를 통해서 ES3보다 빠르게 함수를 호출할 수 있습니다. Type annottations는 런타임에 별도의 체크없이 함수를 호출하도록 해줍니다. int, uint, doible과 같은 데이터 타입은 하드웨어에 직접적으로 매립됩니다. Vector 데이터 타입은 Array에서 발생하는 일반화된 데이터 타입을 컨테이딩함으로써 생기는 오버헤드가 없습니다.

- iteration 과 itemization protocol를 기반으로 한 기능지원, 대표적으로 for-in, for-each-in 구문

- Generators 지원
-Proper tail calls 지원 - 재귀 호출 또는 상호 재귀 호출데 따른 스택 공간 부족 현상을 발생하지 않음. 이터레이터 패턴을 통한 기술
- parameterized classes 지원






Write your message and submit

IExternalizable

Posted 2009.03.12 16:58

IExternalizable 인터페이스를 통해 클래스가 데이터 스트림으로 인코딩되는 직렬화를 제어할 수 있습니다. 클래스에서 IExternalizable 인터페이스의 writeExternal()readExternal() 메서드를 구현하면 객체 및 객체의 상위 유형에 대한 데이터 스트림의 내용과 형식(클래스 이름 또는 유형 제외)을 사용자 정의할 수 있습니다. 각 클래스는 해당 인스턴스의 상태를 직렬화하고 재구성해야 합니다. 상태가 저장되려면 이러한 메서드가 상위 유형과 대칭을 이루어야 합니다. 이러한 메서드는 기본 AMF(Action Message Format) 직렬화 비헤이비어보다 우선합니다.

IExternalizable 인터페이스를 구현하지 않거나 이 인터페이스를 구현하는 클래스의 인스턴스는 공용 멤버의 기본 메커니즘만 사용하여 직렬화됩니다. 따라서 클래스의 전용, 내부 및 보호된 멤버를 사용할 수 없게 됩니다.

전용 멤버를 직렬화하려면 클래스에서 IExternalizable 인터페이스를 사용해야 합니다. 예를 들어 다음 클래스의 멤버는 모두 전용 멤버이므로 어떠한 멤버도 직렬화되지 않습니다.

 class Example {

       private var one:int;
       private var two:int;
}

 IExternalizable 인터페이스를 구현하면 다음과 같이 데이터 스트림에서 클래스의 전용 멤버를 읽고 쓸 수 있습니다.

 class Example implement IExternalizable {

       private var one:int;
       private var two:int;
        public function writeExternal(output:IDataOutput) {
             output.writeInt(one);
            output.writeInt(two);
       }
        public function readExternal(input:IDataInput) {
             one = input.readInt();
            two = input.readInt();
       }
}

참고: 클래스에서 IExternalizable을 구현하면 해당 클래스의 인스턴스에 기본 직렬화가 더 이상 적용되지 않습니다. 이 클래스가 수퍼 클래스의 공용 멤버를 상속하는 경우에는 이러한 멤버도 주의깊게 관리해야 합니다.

IExternalizable을 구현하는 클래스의 하위 클래스에 자체 전용 멤버가 있는 경우 하위 클래스에서는 다음과 같이 IExternalizable의 메서드를 재정의해야 합니다.

 public class Base implements IExternalizable {
 
      private var one:Boolean;
 
      public function writeExternal(output:IDataOutput):void {
 
          output.writeBoolean(one);
      }
 
      public function readExternal(input:IDataInput):void {
 
          one = input.readBoolean();
      }
}
 
public class Example extends Base {
 
      private var one:String;
 
 
      public override function writeExternal(output:IDataOutput):void {
 
          super.writeExternal(output);
          output.writeUTF(one);
      }
 
      public override function readExternal(input:IDataInput):void {
     
          super.readExternal(input);
          one = input.readUTF();
      }
}



implements

클래스가 하나 이상의 인터페이스를 구현하도록 지정합니다. 클래스가 인터페이스를 구현할 때 클래스는 인터페이스에 선언된 모든 메서드를 정의해야 합니다. 인터페이스를 구현한 클래스의 모든 인스턴스는 인터페이스에 정의된 데이터 유형의 멤버로 간주됩니다. 결과적으로 is 연산자는 클래스 인스턴스가 첫 번째 피연산자이고 인터페이스가 두 번째 피연산자일 때 true를 반환하며, 인터페이스에 정의된 데이터 유형과의 강제 형 변환이 수행됩니다.
Write your message and submit

시간과의 8가지 맹세!

Posted 2009.03.12 11:27

◈ 。첫번째 。◈

시간은 내게 소중한 자산이다.

따라서 잠자는 시간이 아니라면 일분 일초을 아껴서

더 나은 방향으로 스스로를 계발하는데 전력한다.


◈ 。두번째 。◈

앞으로 나는 나태한 생각으로

시간을 조금이라도 낭비하는것을 죄악이라고 생각한다.

또한 낭비한 시간만큼 미래의 시간을

알뜰하게 사용해서 그 잘못을 보상하겠다.


◈ 。세번째 。◈

뿌린데로 거둔다는 진리를 가슴깊이 새기고

나 자신만이 아니라 다른 사람들에게도 혜택을 줄수 있는

씨앗만을 뿌리겠다.


◈ 。네번째 。◈

앞으로 나는 시간을 알뜰하게 사용해서

매일 마음의 평화를 얻도록 하겠다.

마음의 평화를 얻지 못할때에는

내가 뿌린 씨앗을 다시 살펴보라는 뜻으로 생각하겠다.


◈ 。다섯번째 。◈

내 삶에 영향을 미치는 모든 상황이

내가 생각하는 자세에 따라 달라질수 있다는 것을 알고있다.

따라서 내가 원하는 상황에 정신을 집중함으로써

두려움과 실망 내가 원하지 않는것이

내 정신에 들어설 시간을 허락하지 않겠다.


◈ 。여섯번째 。◈

이 땅에서 내게 할당된 시간이 분명하지 않고

유한하다는 것을 알고 있다.

따라서 주어진 시간을 가능한 모든 방법으로 유용하게

사용하겠다고 맹세한다.

가까운 사람들이 나를 본받아

그들의 시간을 알뜰히 사용하도록 가르치겠다.


◈ 。일곱번째 。◈

마지막으로, 내게 할당된 시간이 끝나더라도

내 이름이 담긴 내 기념물을 이 세상에 남기고 싶다.

돌로 만든 기념물이 아니라 뭇 사람들의 가슴에 새겨진 기념물,

내가 걸어온 길 때문에

이 세상이 조금이라도 나아졌다는 사실을 증명해 줄

기념물을 남기고 싶다.


◈ 。여덞번째 。◈

앞으로 죽는 날까지 이 맹세를 매일 반복해서 암송하겠다.

이 맹세가 내 성격을 개선해 줄것이고,

내가 영향을 미칠수 있는 사람들에게 용기를 주어

그들의 삶까지 개선해줄 것이라고 믿기 때문이다.

Write your message and submit

키워드 및 예약어

Posted 2009.03.09 17:56


as

class

delete

false

if

instanceof

native

private

super

to

break

const

do

finally

implements

interface

new

protected

switch

true

case

continue

else

for

import

internal

null

public

this

try

catch

default

extends

function

in

is

package

return

throw

typeof

use

var

void

while

with

each

get

set

namespace

include

dynamic

final

native

override

static

 

 

 

Write your message and submit

updateAfterEvent, forEach

Posted 2009.03.04 13:03

updateAfterEvent ()  메서드  
public function updateAfterEvent():void

언어 버전:  ActionScript 3.0
런타임 버전:  AIR 1.0, Flash Player 9

표시 목록이 수정된 경우, 이 이벤트의 처리가 완료된 후 렌더링하도록 Flash Player에 지시합니다.
 
forEach () 메서드  
AS3 function forEach(callback:Function, thisObject:* = null):void

언어 버전:  ActionScript 3.0
런타임 버전:  AIR 1.0, Flash Player 9

배열의 각 항목에 함수를 실행합니다.

이 메서드에서 첫 번째 매개 변수인 callback이 메서드 클로저인 경우 두 번째 매개 변수인 thisObjectnull이어야 합니다. me라는 무비 클립에 함수를 만드는 경우를 가정해 봅니다.

     function myFunction(obj:Object):void {
        //your code here
     }
     

그런 다음 myArray라는 배열에 forEach() 메서드를 사용한다고 가정해 봅니다.

     myArray.forEach(myFunction, me);
     

myFunctionme에서 재정의할 수 없는 Timeline 클래스의 멤버이므로 Flash Player에서 예외가 발생합니다. 다음과 같이 함수를 변수에 할당하면 이 런타임 오류를 방지할 수 있습니다.

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.forEach(myFunction, me);
     

매개 변수

callback:Function — 배열의 각 항목에 실행할 함수입니다. 이 함수에는 trace() 등의 간단한 명령문이나 복잡한 연산이 포함될 수 있으며 항목의 값, 항목의 인덱스 및 Array 객체라는 세 가지 인수와 함께 호출됩니다.
    function callback(item:*, index:int, array:Array):void;
 
thisObject:* (default = null) — 함수에서 this로 사용할 객체입니다.


package {
    import flash.display.Sprite;
    public class Array_forEach extends Sprite {
        public function Array_forEach() {
            var employees:Array = new Array();
            employees.push({name:"Employee 1", manager:false});
            employees.push({name:"Employee 2", manager:true});
            employees.push({name:"Employee 3", manager:false});
            trace(employees);
            employees.forEach(traceEmployee);
        }
        private function traceEmployee(element:*, index:int, arr:Array):void {
            trace(element.name + " (" + element.manager + ")");
        }
    }
}
  1. hazbola

    | 2009.03.10 06:27 신고 | PERMALINK | EDIT | REPLY |

    후압 ~ 멋있는데? ㅋㅋ

  2. Louis

    | 2009.03.12 17:43 신고 | PERMALINK | EDIT |

    도움말 열심히 베끼구있어~ 크크

Write your message and submit
« PREV : 1 : 2 : 3 : 4 : 5 : NEXT »