영상 시퀀스로 가져오기

[Flash/motion]

보통 애프터 이팩트나 기타 후반작업용 툴에서 영상을 프레임으로 뽑아서 플래쉬고 가져가게 됐을때 png형식을 이용했을때에는 영상의 영역만큼 알파값이 먹게 되기 때문에 그 용량이 상당히 큽니다.
이렇게 영상을 가져온 경우에는 알파값의 영역이 넓기 때문에 플래쉬에 부하를 줄 가능성이 매우 농우 합니다 이걸 방지 하려면 애초에 jpg로 해서 필요한 영역만 가져가던가 아니면 png를 최소하 시켜서 가져가야 합니다. 지금 부터 소개해 드리는 방법은 알고 계신부도 있고 모르실수도 있을겁니다. 사실 저두 몰랐는데 저와 같이 일했던 형이 사용하던 방식인데 너무 좋은 방법이라 소개를 해드립니다.이미지 레디에서 지원하는 swf포맺을 이용해서 가져오는 방식입니다.
#1 일단 에프터 이팩트나 기타 다른 툴로 png시퀀스로 뽑아서 저장을 시킵니다.
#2 이제 이미지 레디를 실행 시킵니다. 시퀀스로 뽑은걸 import=> folder as frames 로 가져오면 시퀀스가 하나로 불러들여 집니다.

#3. 영상을 이제 swf포맷으로 내보내기를 하면 됍니다.
Export Animation Frames as Files
메뉴를 선택합니다.

#4. 포맷설정을 swf로 하고 셋팅을 하시고 기타의 폴더 셋팅이나 퀄리티는 입맛대로 하시면 되겠습니다.

#5 플래시로 import 합니다.

#6 플래시 상에서 불필요한 프레임을 제거 최적화

이런식으로 파일을 가져오게 되면 png파일 자체가 가장 작은 싸이즈로 잘려서 플래쉬에 가져오게 되고 위치 정보대로 swf가 들어가기 때문에 알파영역이 최소화 되서 부하를 줄일수 있는 잇점이 있습니다 작은 용량의 영상은 시퀀스로 가져오는걸 기본으로 하는게 좋습니다.


2006/11/06 13:29 2006/11/06 13:29
TAG.

html에서 플래쉬로 변수 보내기~

[Flash/script]

첫. 번째..
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>sub_nav1</title>
</head>
<body bgcolor="#ffffff">
<!--url's used in the movie-->
<!--text used in the movie-->
<!--
COMPANY
-->
<!-- saved from url=(0013)about:internet -->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="211" height="500" id="sub_nav1" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="sub_nav1.swf?doc=010201" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="sub_nav1.swf" quality="high" bgcolor="#ffffff" width="211" height="500" name="sub_nav1" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>
doc라는 변수명에 010201이라는 문자열이 플래쉬에 전달이 된다...
보통은 플래쉬 메뉴의 활성화에 가장 많이 쓰인다...일반적인 에이젼시라면...ㅎㅎ
두. 번째..

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>chart</title>
</head>
<body bgcolor="#ffffff">
<!--url's used in the movie-->
<!--text used in the movie-->
<!-- saved from url=(0013)about:internet -->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="525" height="268" id="chart" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="FlashVars" value="str=9*36*42*20*35*70"/>
<param name="movie" value="chart.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="chart.swf" quality="high" bgcolor="#ffffff" width="525" height="268" name="chart" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>
둘중에 맘에 드시는 걸루다가...^^;;저는 flashvar가 왼지 코딩이 보기가 더 쉬워서 아래걸 주로....
세. 번째..html 마진 없애기

<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
바디에 마진을 적어주면 되더군요...음 드림위버로 코딩을 하다가 아애 손을 뗀이후론 html을 작성해 볼일이 없어서 자연히 까먹더군요...^^;;;

2006/07/21 16:06 2006/07/21 16:06
TAG. ,

블러 필터를 사용하기 위한 프로토 타입

[Flash/script]

이번에 나온 플래시8.0에서는 자체적으로 필터를 적용할수 있는 기능을 지원합니다..

즉 이팩트자체에 인터렉션을 줄수 있다는 장점을 가지고 있습니다.

이런 장점을 아직까지는 회사 자체에서 라이센스를 사질 않아서 프로젝트간엔 사용할 기회가 없었지만 얼마전에 라이센스를 산걸로 알기 때문에 8.0을 적극 활용해볼 생각으로 필터를 프로토 타입화 해서 사용을 해보려고 합니다....

원래 액션을 공부한지 이제 일년정도 되가기에 코딩 스타일이 한없이 바뀌고 있는제가 회사를 옮기면서 또한번 스타일이 바뀌게 되는 일이 생겼네요 회사자체적으로 거의 프로토 타입을 쓰는지라 가급적 as2.0을 지향했지만 병행하기고 맘먹게 되었습니다...흐흐

머 class스타일이 전더 맘에 들지만 편한게 좋은거라고 편해질려고 맘먹으니 런타임에 변수만드는것도 그리 나쁘지 않더라구요...>_<

//

import flash.display.*;
import flash.geom.*;
//
img = BitmapData.loadBitmap('tahee');
mc = this.createEmptyMovieClip("holder", this.getNextHighestDepth());
mc.attachBitmap(img, 1);
//
/////////////////////////////////////////////////////////
MovieClip.prototype.imgTransition = function() {
//
var quality:Number = arguments[0];
var speedX:Number = arguments[1];
var speedY:Number = arguments[2];
var mySpeedX:Number = 100;
var mySpeedY:Number = 100;
/////////////////////////////////////////////////
if (speedX == undefined || speedX == "") {
speedX = 0;
mySpeedX = 0;
}
if (speedY == undefined || speedY == "") {
speedY = 0;
mySpeedY = 0;
}
/////////////////////////////////////////////////                                                        
var myFilter = new flash.filters.BlurFilter(0, 0, quality);
var myFilterList:Array = this.filters;
myFilterList.push(myFilter);
///////////////////////////////////////////////////
this.onEnterFrame = function() {
if (mySpeedX<=0 && mySpeedY<=0) {
 
  delete this.onEnterFrame;
} else {
  ////////////////////////
  mySpeedX -= speedX;
  mySpeedY -= speedY;
  myFilterList[0].blurX = mySpeedX;
  myFilterList[0].blurY = mySpeedY;
  this.filters = myFilterList;
}
};
//trace(myFilterList)
};
mc.imgTransition(2, 10, 20);


요 프로토 타입은 jpg파일을 라이브러리 상에서 직접 가져다 쓰는 방식을 사용하고 있습니다.

imgTransition()요 프로토타입은 세가지의 파라미터를 가지며 처음부터 퀄리티 x좌표로 변화

y좌표로 변화를 하게 됩니다.참고로 값이 없을경우는 "" 빈파라미터로 넘겨야 합니다...0을주면 에러가 나게 제작한 관계로 기차니즘으로 걍사용을 하는 중이라..^^;;

제작 당시엔 0을 주면 증가가 안한다는걸 깜빡하고 이프문에 추가를 안해서리..흐흐

2006/07/21 15:42 2006/07/21 15:42
TAG.

자바스크립트에서 플래시로 변수 저장하기....

[Flash/script]

이번에 진행중인 프로젝트에서 두개의 swf파일이 통신을 해야 하는 경우가 있어서 자바스크립트에서 변수를 플래시로 넘기는걸 사용하게 되었습니다.

swf끼리 통신을 하면 2004에서 새로 추가된 기능인 LocalConnection을 이용을 하게 됩니다.

그런데 이 LocalConnection은 약간의 문제점이 있습니다.

만약...두개의 swf파일이 있는 페이지가 한번또 생성이 된다면 동일한 아이디 값을 같고 있는 swf파일이 생성이 됩니다 이럴때 문제가 발생을 합니다.

동일한 아이디 값을 같기 때문에 한쪽만 반응을 하고 다른 쪽은 반응을 하지 않게 됩니다.

이러한 점이..8버전에서는 개선이 되었는지 확인을 하지 않았고 이러한 겹치는 아이디값을 동적으로 변화를 주기 위해서 자바스크립트에서 플래시에 변수를 넣는 방식으로 작업이 진행되었습니다.

//

<script language=javascript>

function SendDataToFlashMovie()
{
today = new Date()
today.getHours()
window.document.productSubMain.setVariable('count', today.getTime());
window.document.productSubMainMenu.setVariable('count', today.getTime());
}

</script>

//이런식으로 html페이지에 함수를 삽입하고

이 함수는 시스템에 있는 날자및 시간값을 받아내서 서로 통신을 해야 하는 swf파일에 녹색부분은

swf의 아이디 값입니다.

count라는 변수에 시스템의 시간및 날자 정보를 보냅니다.

//

//html페이지가 로드 될때 함수를 실행하게 합니다.

//

<body onLoad="SendDataToFlashMovie();">
<table width="200" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <td><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="635" height="628" id="productSubMain">
     <param name="movie" value="productSubMain.swf">
     <param name="quality" value="high">
     <embed src="productSubMain.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="635" height="628"></embed>
  </object></td>
  </tr>
</table>
<div id="Layer1" style="position:absolute; left:660px; top:65px; width:82px; height:151px; z-index:1">
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="885" height="288" id="productSubMainMenu">
  <param name="movie" value="productSubMainMenu.swf">
  <param name="quality" value="high">
  <embed src="productSubMainMenu.swf" quality="high"

pluginspage="http://www.macromedia.com/go/getflashplayer"

type="application/x-shockwave-flash" width="885" height="288"></embed>
  </object>
</div>
</body>

키가 되는 부분은 swf에 아이디 값을 넣어 주는것입니다.

그러면 swf에 count라는 변수에 저장되는 값 자체를 LocalConnection의 아이디 값으로 이용을 하는 것입니다.

2006/07/21 15:40 2006/07/21 15:40
TAG.

splite 을 사용한 문자열 배열화 시키기

[Flash/script]

class StringChangeArray
{
//클래스 멤버선언
private var tempValue1 : Array = new Array ();
private var tempValue2 : String;
var setValue = new Array ();
//constructor
function StringChangeArray ()
{
tempValue1 = arguments [0];
tempValue2 = arguments [1];
setValue = stringChane ();
//
}
function stringChane () : Array
{
//
var tempValue = new Array ();
//
for (var i = 0; i < tempValue1.length; i ++)
{
  tempValue [i] = tempValue1 [i].split (tempValue2);
}
return tempValue;
}
}

split를 이용한 문자열 배열화 하기....

일정한 문자를 지정해서 문자열을 배열화 시켜주는 매소드를 이용한 클래스이다.

이용법은 첫번째 파라미터에는 문자열을 두번째 파라미터에는 구분자로 이용할 문자열을 넣는 식으로 합니다~

2006/07/20 15:43 2006/07/20 15:43
TAG.

as.30 적응이 안된다는...-0-

[Flash/script]

http://livedocs.macromedia.com/flex/2/langref/index.html

출시가 얼마 남지 않았는지 adobe가 공개적으로 as.03 프리뷰를 무료로 공개해서 요즘...3.0을 보고 있답니다.. 그런데 이게 어찌나 많이 바뀐건지 당최 종 잡을수가 없네요......-0-
그동안의 방식과는 다르게 기본적으로 제공을 하던 함수로는 제어가 거의 안되고 import를 해서 사용할 사용하는 방식으로 변경이 되었습니다.
이것 자체가 너무나 했갈리네요...사실 제일 많이 사용하게 될분분은 아마도 flash.display나 flash.event의 클래스를 제일 많이 쓰일 것이라고 생각을 합니다만.......이 3.0에 적응이 되려면 한참 걸릴듯 하네요....
아마도 어도비도 이부분 때문에 미리 사용해 볼수 있도록 기존 유저들에게 배려를 해준듯 하구요....
유저를 배려를 하는건 정말 좋긴한데.....이렇게 확 달라지면 곤란 하죠...ㅠ..ㅠ
//
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFF0000);
circle.graphics.drawCircle(40, 40, 40);
addChild(circle);

circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject);
circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject);

function dimObject(event:MouseEvent):void {
//가장 재미있는 부분 속성을 이전 버전들은 언더바를 쓰고 하는데 바로 쓴다는 것이나 알파는
//100~0까지 였는데 이번엔 1~0까지 바뀐것 같습니다.
  event.target.alpha = 0.5;
}

function restoreObject(event:MouseEvent):void {
  event.target.alpha = 1.0;
}
//
이벤트 부분도 리스너를 등록해서 사용해야 한다는....-_-;;;
속도 향상을 위해서 한것 같지만...사실...너무 번거러워 지는거 아닌가 십네요...
클래스 화를 하지 않는다면...이거 정말 노가다 심하게 해야 할듯해요....ㅎㅎ...
클래스를 사용하란 압력인지....

2006/07/11 18:52 2006/07/11 18:52
TAG.

Flash Professional 9 ActionScript 3.0preview

[Flash/script]

Flash Professional 9 ActionScript 3.0 Preview

Adobe Flash Professional 9 ActionScript 3.0 Preview provides registered users of Flash Professional 8 with early access to the new ActionScript 3.0 language and the ability to publish to the newly-released Flash Player 9. ActionScript 3.0 and the new ActionScript Virtual Machine introduced with Flash Player 9 are among the most signficant advances in the history of Flash. These new advancements, made in Flash Player 9, provide a more robust programming model, achieve standards compliance, and deliver ground-breaking performance improvements.

The Flash Professional 9 ActionScript 3.0 Preview is the only planned "preview release" of the next version of the Flash authoring tool before the final version ships in 2007. The only "new" features exposed in this very early preview of Flash 9 are those related to publishing ActionScript 3.0 content to Flash Player 9. This includes integration of the new ActionScript 3.0 compiler, the new "Document Class" feature which allows users to assign a class to the main timeline, and a new publish target for Flash Player 9. There are other useful features planned for ActionScript development but they are not being made publicly available at this time.


A universal binary version of Flash Professional 9 ActionScript 3.0 Preview for Intel-based Macintosh computers is not planned to be made available on Labs. A universal binary version is planned for the final release.

Read more about Flash Player 9 and ActionScript 3.0.

  • Getting Started
  • Community
  • Product Details

    Follow these steps to get started with ActionScript 3.0 using Flash Professional 9:

    ***** 관련 링크

    http://www.flashguru.co.uk/   [블러그]

    http://labs.adobe.com/wiki/index.php/ActionScript_3#ActionScript_3.0  [아더비]

    http://livedocs.macromedia.com/specs/actionscript/3/wwhelp/wwhimpl/js/html/wwhelp.htm [도움말]

    http://download.macromedia.com/pub/documentation/en/flex/2/prog_actionscript30.pdf

    http://www.flash8coders.com/as3/bitmapTest.html

  • Flash Professional 9 ActionScript 3.0 Preview

    Adobe Flash Professional 9 ActionScript 3.0 Preview provides registered users of Flash Professional 8 with early access to the new ActionScript 3.0 language and the ability to publish to the newly-released Flash Player 9. ActionScript 3.0 and the new ActionScript Virtual Machine introduced with Flash Player 9 are among the most signficant advances in the history of Flash. These new advancements, made in Flash Player 9, provide a more robust programming model, achieve standards compliance, and deliver ground-breaking performance improvements.

    The Flash Professional 9 ActionScript 3.0 Preview is the only planned "preview release" of the next version of the Flash authoring tool before the final version ships in 2007. The only "new" features exposed in this very early preview of Flash 9 are those related to publishing ActionScript 3.0 content to Flash Player 9. This includes integration of the new ActionScript 3.0 compiler, the new "Document Class" feature which allows users to assign a class to the main timeline, and a new publish target for Flash Player 9. There are other useful features planned for ActionScript development but they are not being made publicly available at this time.


    A universal binary version of Flash Professional 9 ActionScript 3.0 Preview for Intel-based Macintosh computers is not planned to be made available on Labs. A universal binary version is planned for the final release.

    Read more about Flash Player 9 and ActionScript 3.0.

    Follow these steps to get started with ActionScript 3.0 using Flash Professional 9:


    2006/07/02 20:50 2006/07/02 20:50
    TAG.

    static 키워드

    [Flash/script]
    static 키워드는 의미대로 정지된 상태로 static로 정의된 멤버는 그값을 적재 나갈수 있음을 나타내며 변수또는 메서드에 사용이 된다. static로 적용된 멤버는 상속되지 않는 클래스 에서만 속한 멤버이기 때문에 메인필드에서 객체를 사용해서 액세스 하거나 클래스 필드에서 this 키워드로 적근을 하면 에러가 발생하게 된다.
    객체를 통하여 접근하는것이 아니라 직접 클래스에 접근하여 사용하게 된다.

    class Box{
        public static var numSides:Number=4;
    }
    //
    trace(numSides) 이런식으로 직접 적근을 하게 된다.
    주로 카운터를 세는 목적이나 클래스들 사이에 데이터를 공유해야 할경우에 유용할것 같다.
    2006/06/21 11:23 2006/06/21 11:23
    TAG.

    XMLSocket 보안 정책

    [Flash/script]

    swf에서 다른 도메인에 위치한 swf를 로드하는 것이 현제의 Flash Player7.0 이나 Flash Player8.0은 작동되질 않습니다. 5.0에서는 이것이 가능해서 여러가지 장난을 할수가 있었습니다.
    하지만 이걸 막기위해서 크로스 도메인을 셋팅하게 된것입니다. 귀찮기는 해도 보안을 위해서는 꼭 필요하지요. 지금 부터 있는 글은 플래시의 HELP에 있는 글입니다. 한번쯤 일어봐 두시면 필요할 때가 올지도 모르겠지요... 글의 내용은 XMLSocket을 연결을 위한 내용이지만 도메인이 다를때 swf를 로드할때에도 공통 적용이 됩니다.
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    XMLSocket 연결을 위해 Flash Player 7(7.0.14.0)은 연결을 시도한 하위 도메인의 HTTP 서버 포트 80에서 crossdomain.xml을 찾습니다. Flash Player 7(7.0.14.0) 이하 버전은 모두 포트 1024 이상으로 XMLSocket 연결을 제한했습니다. 그러나 Flash Player 7(7.0.19.0) 이상 버전에서는 ActionScript의 System.security.loadPolicyFile을 사용하여 사용자 정의 정책 파일 위치를 Flash Player에 알릴 수 있습니다. XMLSocket 정책 파일의 사용자 정의 위치는 반드시 XML 소켓 서버에 있어야 합니다.

    다음 예제에서 Flash Player는 지정된 URL에서 정책 파일을 검색합니다.

    System.security.loadPolicyFile("http://www.foo.com/folder/policy.xml");

    각 위치에 있는 정책 파일로 부여된 모든 권한은 서버의 계층 구조에서 같은 수준 또는 그 아래 수준에 있는 모든 내용에 적용됩니다. 그러므로 다음 데이터를 로드하려고 시도하면 특정 위치에 있는 데이터만 로드할 수 있음을 확인할 수 있습니다.

    myLoadVars.load("http://foo.com/sub/dir/vars.txt"); 
    // allowedmyLoadVars.load("http://foo.com/sub/dir/deep/vars2.txt");
    // allowedmyLoadVars.load("http://foo.com/elsewhere/vars3.txt"); // not allowed

    이 문제를 해결하려면 loadPolicyFile을 사용하여 한 SWF 파일에 둘 이상의 정책 파일을 로드합니다. Flash Player에서는 정책 파일을 요구하는 요청을 거부하기 전에 항상 정책 파일 다운로드가 완료되기를 기다립니다. 그리고 SWF 파일에 작성된 다른 정책이 없을 경우 crossdomain.xml의 기본 위치를 검색합니다.

    특수 구문을 사용하면 XMLSocket 서버에서 직접 정책 파일을 검색할 수 있습니다.

    System.security.loadPolicyFile("xmlsocket://foo.com:414");

    이 예제에서 Flash Player는 지정된 호스트 및 포트에서 정책 파일을 검색하려고 시도합니다. 정책 파일이 기본(루트) 디렉토리에 없을 경우 모든 포트를 사용할 수 있습니다. 그렇지 않을 경우 이전 Player와 마찬가지로 포트는 1024 이상으로 제한됩니다. 지정된 포트로 연결이 설정되면 Flash Player는 Null 바이트로 끝나는 <policy-file-request/>를 전송합니다.

    다음과 같은 방법으로 정책 파일을 제공하도록 XML 소켓 서버를 구성할 수 있습니다.

    • 같은 포트를 통해 정책 파일 및 일반 소켓 연결을 제공합니다. 서버는 정책 파일을 전송하기 전에 <policy-file-request />를 기다려야 합니다.
    • 일반 연결과 다른 포트를 통해 정책 파일을 제공합니다. 이러한 경우 서버는 전용 정책 파일 포트에 연결이 설정되는 즉시 정책 파일을 보낼 수 있습니다.

    서버는 연결을 종료하기 전에 Null 바이트를 전송하여 정책 파일을 종료해야 합니다. 서버에서 연결을 종료하지 않을 경우 종료 Null 바이트가 Flash Player에 수신될 때 연결이 종료됩니다.

    XML 소켓 서버에서 제공하는 정책 파일은 액세스를 허용할 포트를 지정해야 한다는 것을 제외하고 다른 정책 파일과 구문이 같습니다. 허용되는 포트는 <allow-access-from> 태그의 to-ports 속성에서 지정합니다. 정책 파일이 포트 1024 미만인 경우 모든 포트에 액세스를 허용할 수 있습니다. 정책 파일이 포트 1024 이상을 통해 제공된 경우 1024 이상의 포트에만 액세스를 허용할 수 있습니다. 단일 포트 번호, 포트 범위 및 와일드카드를 사용할 수도 있습니다. 다음 코드는 XMLSocket 정책 파일의 예제입니다.

    <cross-domain-policy><allow-access-from domain="*" to-ports="507" />
    <allow-access-from domain="*.foo.com" to-ports="507,516" />
    <allow-access-from domain="*.bar.com" to-ports="516-523" />
    <allow-access-from domain="www.foo.com" to-ports="507,516-523" />
    <allow-access-from domain="www.bar.com" to-ports="*" /></cross-domain-policy>

    1024 미만의 포트에 연결할 수 있는 기능은 Flash Player 7(7.0.19.0) 이상의 새로운 기능이므로 SWF 파일이 자체 하위 도메인에 연결되더라도 이 포트에 대한 권한을 부여하려면 loadPolicyFile을 통해 로드된 정책 파일이 항상 필요합니다.
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    2006/06/18 01:08 2006/06/18 01:08
    TAG.

    그라데이션 마스크 적용하기

    [Flash/script]

    플래시에서는 7까지는 마스크를 적용하면 알파 값이 먹히는 것처럼 마스크가 되질 않았다.하지만 이번 8버전에서는 새로 생긴 기능인 cacheAsBitmap이 메소드가 추가 되면서 간단하게 알파 값이 먹히는 마스크를 적용할 수가 있게 되다.

    우선 마스크가 쒸어질 대상이 되는 무비클립을 하나 만든다.
    요걸 base라는 무비클립으로 만들면 이제는 마스크를 쒸워줄 무비클립을 하나 만든다. 마스크를 쒸울 무비클립은 mask라고 인스턴스 네임을 줍니다.
    그리고 이 마스크에 이팩트인 블러를 줍니다.

    만약 그라데이션이 되는 것 처럼 나타나는걸 보여주고 싶다 하시면 이팩트의 수치를 0으로 주시고 마스크를 쒸울 무비클립 안에 그라데이션을 알파가 먹는 식으로 주시면 적용이 됩니다.
    그냥 알파가 먹은 것처럼 한다면 이팩트에 블러를 주셔도 됩니다.
    중요한 점은 꼭 이팩트값은 주셔야 합니다.
    이제 준비가 다 됐습니다. 마스크를 그냥 주시면 안되고 마스크는 액션으로 주셔야 합니다.
    Base.setMask(mask)
    base.cacheAsBitmap = true;

    라고 작성을 해주시면 됩니다. cacheAsBitmap는 투루값을 주셔야 합니다.

    그냥 제가 글로만 적어놓아서 이해가 어떠실지는 모르겠지만 여기에서 마스크가 적용되는 것은 알파 값이 먹는 부분이 마스크가 적용되는 부분도 동일하게 알파가 먹히게 되는 것입니다.

    2006/06/15 11:19 2006/06/15 11:19
    TAG.