태그 보관물: ActionScript 2.0

Flash Bookmark

워드프레스에서 제공하는 북마크 기능은 많은 수의 사이트를 표시하는 데는 무리가 있어서, 데스크탑 어플리케이션에서 사용하던 북마크 기능을 붙여 봤습니다. 폴더를 열고 닫고, 링크 이동할 때는 더블클릭 하면 됩니다. 그리고 폴더의 열림 상태와 스크롤 위치를 SharedObject에 기록하여, 페이지를 이동하거나 다음 방문 시에도 이전의 상태를 그대로 보여줍니다.

AS3의 UI 컴퍼넌트에는 트리 컴퍼넌트가 없어서, 부득이하게 AS2로 개발했습니다. 물론 ASTRA 플래시 컴퍼넌트 등도 있지만, 사용하기엔 플래시 내장 컴퍼넌트가 더 편한듯 하여…

Using “setTimeout()” in a custom class.

ActionScript 2.0을 사용할 때, 플래시 8에서 추가된 setTimeout() 메소드를 사용하면 편리하지만, 클래스에서 setTimeout()를 사용하면 다음과 같이 에러가 발생합니다.

There is no method with the name ‘setTimeout’.

그래서 setTimeout() 대신 setInterval() 메소드를 사용하는 경우가 생기죠. 그럴 필요 없이 $(LocalData)/Classes/toplevel.as 파일을 수정하면 이 문제가 말끔히 해결됩니다.
이 파일을 열어서 다음 2줄을 추가하고, 저장합니다. 그리고 플래시를 재시작하면 클래스에서도 setTimeout() 메소드를 문제없이 사용할 수 있습니다.

intrinsic function clearTimeout(id:Number):Void;
intrinsic function setTimeout():Number;

ActionScript 3.0의 경우라면 다음과 같이 utils 패키지의 메소드들을 임포트 해주면 됩니다.

import	flash.utils.setTimeout;
import	flash.utils.clearTimeout;

tweener

Yesterday, jin_u told me about Tweener. Tweener is an open source(MIT License) library for tweening in ActionScript 2 and 3. It has more features than the Flash native Tween class.

For more informaton, visit the official website at Google Code and Tweener Documentation and Language Reference.

어제 사내 스터디에서 진우Tweener에 대해서 알려주었습니다. Tweener는 액션스크립트 2와 3에서 트위닝을 위한 오픈소스(MIT 라이센스) 라이브러리입니다. 플래시 내장 Tween 클래스보다 많은 기능을 가지고 있네요.

자세한 정보는 Google Code의 공식 홈페이지Tweener 도움말을 참고하세요.

昨日jin_uからTweenerについて聴いた。Tweenerはオープンソース(MIT License)ライブラリーとしてtweening機能を提供します。このクラスはフラッシュ内蔵クラスより機能が多いんです。

詳しい情報はGoogle Codeの公式ホームページ、またはTweenerマニュアルへ…

동적으로 로드한 이미지 Allow smoothing 컨트롤 하기…

Dcaland.com을 만들면서 사용한 메소드를 하나 올릴까 합니다. 플래시 8 버전에서는 이미지를 외부로 부터 로드를 할 경우에 default로 Allow smoothing(매끄럽게)이 false 값을 가지게 되는데 Allow smoothing이 false일 경우에는 에니메이션(좌표,로테이션등) 할때 이미지가 지글거리는 문제가 있죠. 라이브러리에 등록된 이미지는 속성에서 수동으로 채킹을 해서 사용하면 된다지만 외부에서 동적으로 불러온 이미지를 움직일 때는 문제가 있죠. 아래 메소드는 그 문제를 해결해 주는 메소드입니다. http://www.kaourantin.net/ 에 기술된 내용을 간단하게 수정해서 사용하고 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import flash.display.*;
 
private function loadImg (target : MovieClip, url : String) : Void 
{ 
  var bmc : MovieClip = target.createEmptyMovieClip ("bmc", target.getNextHighestDepth ()); 
  var listener : Object = new Object (); 
  listener.tmc = target; 
  listener.onLoadInit = function (mc : MovieClip) 
  { 
    mc._visible = false; 
    var bitmap : BitmapData = new BitmapData (mc._width, mc._height, true); 
    this.tmc.attachBitmap (bitmap, this.tmc.getNextHighestDepth () , "auto", true); 
    bitmap.draw (mc); 
  }; 
  var loader : MovieClipLoader = new MovieClipLoader (); 
  loader.addListener (listener); 
  loader.loadClip (url, bmc); 
}

BitmapData 를 사용하기 위해서 import flash.display.*; 임포트 시켜서 사용하세요
입맛에 맞게 수정해서 사용하세요 어떻게 보면 약간의 꼼수가 있는거 같지만 8.5 나오기 전까지는 작지만 유용한 메소드가 될듯 싶습니다.

출처: http://blog.naver.com/usaaha/120027435534