- 전체
- HTML
- Web Design (웹디자인)
- XE 응용 개발
- wordpress plugin dev
- Javascript & JavaScript Application
- MEAN Stack : full stack javascript
- angular js & ionic framework
- bootstrap
- WebGL, Three.js and Babylon.js
- restful api design
- mobile web
- node.js 응용
- Cloud Service 응용
- 웹 어셈블리 개발 [WASM, WebAssembly]
- 마이크로서비스, MSA (microservice architecture)
- WebGL / WebGPU
- next.js 개발
- micro frontend (마이크로프론트앤드)
- 전자상거래/쇼핑몰
- 서버 클라우드 (aws, azure, google)
FLASH ActionScript 3.0 : 어려울까요? 안 어려울까요? - (1)
2014.06.22 12:52
[출처] http://www.hanbit.co.kr/network/view.html?bi_id=1483
ActionScript 3.0 : 어려울까요? 안 어려울까요? - (1)
등록일 : 2008년 01월 09일 조회수 : 3,514
제공 : 한빛 네트워크
저자 : Colin Moock
역자 : 박주현
원문 : ActionScript 3.0: Is It Hard or Not?
가끔 몇몇 분들이 ActionScript 3.0에서는 객체지향 프로그래밍을 준수해야 하고, 변수를 사용하기 전에 항상 선언을 해야 하며, 패키지 혹은 클래스에 반드시 집어넣어서 만들어야 한다고 주장합니다. 사실 그 말은 틀렸습니다. ActionScript 3.0 에서는 ActionScript 2.0 나 ActionScript 1.0 에서와 같이 각timeline에 코드를 넣을 수 있습니다. 또한 코드들이 반드시 클래스 안에 붙어있어야 하지 않습니다. strict compilation 모드에서도 별다른 변수형 선언 없이 변수를 사용할 수 있습니다. 이 언어는 필요한대로 복잡한 구조 혹은 간단한 구조 중에서 사용자 입맛에 맞게 적절히 사용할 수 있게 디자인되었습니다. 함수와 변수만 사용하는 간단한 절차형언어형 또한 ActionScript 3.0에서도 각 프레임 단위로 삽입이 가능합니다.
배우기 어려워요!
놀랍게도 대학교수급의 강사 분들이 ActionScript 3.0 은 학생들에게 너무 어려워서 대신 ActionScript 1.0 이나 ActionScript 2.0 을 가르친다고 합니다. 이는 ActionScript 3.0 에서는 자바스타일의 OOP만 가능하고, ActionScript 1.0 에서는 간단한 timeline 스크립팅으로 가능하다고 생각하는 탓인 것 같습니다. 정말로 ActionScript 3.0 는 자바스타일 프로그래밍이 가능합니다만, Flash 4에서 쓰였던 간단한 스크립트들 모두 여전히 사용 가능합니다.
ActionScript 3.0과 ActionScript 1.0중 어느것이 정말로 어려운지를, 개발에 있어서 기본이 되는 몇몇 간단한 코드들을 비교하여 봅시다. 각 예제에서 전자가 ActionScript 1.0 버전의 코드이고, 후자가, ActionScript 3.0의 코드입니다.
ActionScript 1.0에서의 예제입니다. 이 소스는 swf 파일의 로딩을 기다리고, 로딩이 되면 다음프레임으로 넘어가게 합니다.
다음으로 프로그램으로 오브젝트를 움직이는 예제를 살펴보겠습니다. 다음의 ActionScript 1.0 코드는 지정한 무비클립을 수평으로 움직입니다. 이 무비클립은 Flash에서 “ball”로 명명하고 1프레임에 놓였다고 가정하겠습니다.
이제 조금 더 복잡한 프로그래밍 모션 예제를 보겠습니다. 우선 ActionScript 1.0에서 살펴 보겠습니다. 이 코드는 무비클립을 원 주위를 한 바퀴 돌아가게 합니다. 역시 그전에 Flash에서 무비클립을 ‘ball’로 이름 짓고 1프레임에 배치 하였습니다.
저자 : Colin Moock
역자 : 박주현
원문 : ActionScript 3.0: Is It Hard or Not?
가끔 몇몇 분들이 ActionScript 3.0에서는 객체지향 프로그래밍을 준수해야 하고, 변수를 사용하기 전에 항상 선언을 해야 하며, 패키지 혹은 클래스에 반드시 집어넣어서 만들어야 한다고 주장합니다. 사실 그 말은 틀렸습니다. ActionScript 3.0 에서는 ActionScript 2.0 나 ActionScript 1.0 에서와 같이 각timeline에 코드를 넣을 수 있습니다. 또한 코드들이 반드시 클래스 안에 붙어있어야 하지 않습니다. strict compilation 모드에서도 별다른 변수형 선언 없이 변수를 사용할 수 있습니다. 이 언어는 필요한대로 복잡한 구조 혹은 간단한 구조 중에서 사용자 입맛에 맞게 적절히 사용할 수 있게 디자인되었습니다. 함수와 변수만 사용하는 간단한 절차형언어형 또한 ActionScript 3.0에서도 각 프레임 단위로 삽입이 가능합니다.
배우기 어려워요!
놀랍게도 대학교수급의 강사 분들이 ActionScript 3.0 은 학생들에게 너무 어려워서 대신 ActionScript 1.0 이나 ActionScript 2.0 을 가르친다고 합니다. 이는 ActionScript 3.0 에서는 자바스타일의 OOP만 가능하고, ActionScript 1.0 에서는 간단한 timeline 스크립팅으로 가능하다고 생각하는 탓인 것 같습니다. 정말로 ActionScript 3.0 는 자바스타일 프로그래밍이 가능합니다만, Flash 4에서 쓰였던 간단한 스크립트들 모두 여전히 사용 가능합니다.
ActionScript 3.0과 ActionScript 1.0중 어느것이 정말로 어려운지를, 개발에 있어서 기본이 되는 몇몇 간단한 코드들을 비교하여 봅시다. 각 예제에서 전자가 ActionScript 1.0 버전의 코드이고, 후자가, ActionScript 3.0의 코드입니다.
ActionScript 1.0에서의 예제입니다. 이 소스는 swf 파일의 로딩을 기다리고, 로딩이 되면 다음프레임으로 넘어가게 합니다.
// 4프레임 코드
if (_framesloaded == _totalframes) {
gotoAndPlay(6)
}
// 5프레임 코드
gotoAndPlay(4);
같은 동작을하는 ActionScript 3.0소스입니다. // 4프레임 코드
if (framesLoaded == totalFrames) {
gotoAndPlay(6);
}
// 5프레임 코드
gotoAndPlay(4);
‘_’를 없애고 각 단어의 첫 글자를 대문자로 바꾼 ActionScript 3.0의 “framesLoaded”와 “framesLoaded” 는 확실히 ActionScript 1.0에서의 그것보다 명료해서 배우기도 쉽습니다. 다음으로 프로그램으로 오브젝트를 움직이는 예제를 살펴보겠습니다. 다음의 ActionScript 1.0 코드는 지정한 무비클립을 수평으로 움직입니다. 이 무비클립은 Flash에서 “ball”로 명명하고 1프레임에 놓였다고 가정하겠습니다.
// 1프레임 코드
setInterval(moveBall, 20);
function moveBall () {
ball._x += 10;
}
아래는 ActionScript 3.0코드입니다 // 1프레임 코드
setInterval(moveBall, 20);
function moveBall () {
ball.x += 10;
}
마찬가지로 차이점은 ActionScript 1.0의 “_x”에서 언더바를 제거하여 ActionScript 3.0에서는 “x”를 사용한다는 것입니다. ActionScript 3.0에서도 무비클립 인스턴스는 여전히 각각의 인스턴스 이름을 통해 화면에서 움직이게 할 수 있습니다. 여전히 ActionScript 3.0에서 setInterval()함수도 동일하게 쓸 수 있습니다. 하지만 새로 추가된 Timer 클래스를 쓰면 더욱 향상된 재생, 정지 또는 반복기능을 사용할 수 있습니다. 이제 조금 더 복잡한 프로그래밍 모션 예제를 보겠습니다. 우선 ActionScript 1.0에서 살펴 보겠습니다. 이 코드는 무비클립을 원 주위를 한 바퀴 돌아가게 합니다. 역시 그전에 Flash에서 무비클립을 ‘ball’로 이름 짓고 1프레임에 배치 하였습니다.
var rpm = 30;
var radius = 150;
var centerX = 230;
var centerY = 200;
var theta = 0;
var degreesPerSecond = rpm * 360 / 60;
var now = getTimer();
var intervalID = setInterval(moveClipAroundCircle, 20, ball);
function moveClipAroundCircle (theClip) {
var then = now;
now = getTimer();
var elapsed = now - then;
var numSeconds = elapsed / 1000;
var degreeIncrement = degreesPerSecond * numSeconds;
theta += degreeIncrement;
theta %= 360;
var radians = degreesToRadians(theta);
theClip._x = centerX + Math.cos(radians) * radius;
theClip._y = centerY - Math.sin(radians) * radius;
}
function degreesToRadians(degrees) {
return (degrees/180) * Math.PI;
}
아래는 ActionScript 3.0 코드입니다. // Code on frame 1
var rpm = 30;
var radius = 150;
var centerX = 230;
var centerY = 200;
var theta = 0;
var degreesPerSecond = rpm * 360 / 60;
var now = getTimer();
var intervalID = setInterval(moveClipAroundCircle, 20, ball);
function moveClipAroundCircle (theClip) {
var then = now;
now = getTimer();
var elapsed = now - then;
var numSeconds = elapsed / 1000;
var degreeIncrement = degreesPerSecond * numSeconds;
theta += degreeIncrement;
theta %= 360;
var radians = degreesToRadians(theta);
theClip.x = centerX + Math.cos(radians) * radius;
theClip.y = centerY - Math.sin(radians) * radius;
}
function degreesToRadians(degrees) {
return (degrees/180) * Math.PI;
}
역시 변수명에서 언더바가 빠진 게 두 코드의 차이입니다. 때문에 ActionScript 3.0 코드가 ActionScript 1.0 코드보다 깔끔합니다. 안 어렵습니다. 본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 4 |
[Node.js] forever - node.js app 이 죽을경우 자동으로 재실행해주는 모듈
| 졸리운_곰 | 2017.09.26 | 636 |
| 3 |
[Node.js] proxy 환경에서 node.js 설정
| 졸리운_곰 | 2017.08.16 | 485 |
| 2 |
[Node.js] Node.js, Express, MongoDB를 이용하여 REST API 만들기
| 졸리운_곰 | 2016.06.06 | 772 |
| 1 |
Create a Web App and RESTful API Server Using the MEAN Stack
| 졸리운_곰 | 2016.06.05 | 2119 |

