Archive for the 'Flash8' Category

ExternalInterface bug (Firefox)

Just a quick warning to people using ExternalInterface. When you are calling Javascript functions that open new windows your Flash movie will lose all mouse interaction (no rollovers etc) and the button you pressed to open the popup will stick on its “over” state. This is only in Firefox, (and possibly only when the popup contains a Flash movie, tbc).

flash8 에 새로운 External API. 인 ExternalInterface…..

실무에 적용하여 사용한적은 없는것 같다. 그다지 쓰이지 않아서 그런진 몰라도…

Firefox에서 새로운 팝업창에서의 플래시 무비가 전혀 마우스 반응을 하지 못하는 버그가 있다.

팝업창을 사용하지 않는것이 좋겠지만 어쩔수 없이 사용해야할 경우, 그리고 꼭 firefox에서도 지원해야할경우

이때는 간단히 getURL 로 javascript 호출하면 된다.

Alpha Gradiant Masks

flash8 이 출시된지 반년 이상이 지났다.
정말 출시전에는 엄청난 기능상의 변화, 그리고 놀라운 퍼포먼스의 향상과 같은 프리뷰 내용으로 잔뜩 기대감에 부풀어 있었지만 정작 뚜껑을 열어보고 사용해보니 기대가 너무 컸던 탓일까…
지금에 와서는 좀 아쉬는 생각이 든다.
플래시에서도 photoshop과 같은 필터효과를 줄 수 있다라는 말에 정말 이젠 플래시로 표현 못하는것이 없겠구나 하는 했지만….원하는 정도의 효과를 사용한다면 너무 느려지는 퍼포먼스로 인해 도저히
봐줄수 없는 상태……

물론 BitmapData 의 도입으로 기존에는 할수 없었던 것들을 할수있다.
하지만 게으름때문인지는 몰라도 이런 위의 문제점으로 성능상에 문제가 있을거야 하는 내나름의 한계를 그어버리는 건지도 모른다. as3.0이 본격적으로 사용되면 최대 9배 이상의 성능향상이 있다고 한다. 그렇게 되면 핑계도 없어질텐데….
정말 해봐야 할것 많은데…몸이 따라주질 않는다..

전에 한번 flash 8 에서 비트맵을 지원해서 Mask 에서도 alpha 값을 사용할 수도 있다는 내용을 본적이 있어 이것저것 테스트 해보았는데 정말 alpha gradiant 를 Mask 에서도 사용할수 있었다.

maskee.cacheAsBitmap = true;
maskMC.cacheAsBitmap = true;

actionscript 에서 적용하려면 mask 무비클립과 mask 되어지는 무비클립에 cacheAsBitmap 을 적용해 비트맵으로 전환한다.
그리고 alpha gradiant  를 적용할 mask를 제작하여 적용하면 된다.

movieclip property 창에서 적용할 수도 있다. Use runtime bitmap caching 을 체크해주면 위와 똑같은 기능을 한다.

flash를 사용할때면 alpha 값이 적용된 mask를 꼭 한번 사용할 일이 있을것이다.
그때 잊지말고…..

Static textfield Error

static textfield 를 사용하여 텍스트를 사용할 경우 한가지 주의하야할 사항이 있다.
영문은 해당하지 않고 한글을 사용할때의 문제다.

짧은 내용의 글을 입력할 때는 상관이 없다. 하지만 anti-alias 정보가 많이 포함되는 텍스트일 경우,
즉 텍스트의 길이가 어느정도 이상일경우 보이지 않는 현상이 발생한다.
flash MX2004 때에도 이런 문제가 있었는데 여전히 고쳐지지 않았다.

static field 를 사용해서 이문제를 해결하려면 device font 를 사용하는 수 밖에 없다.
이런 문제로 사용자가 지정한 폰트를 사용할 수 없다면 여간 화가 나는 상황일 수 밖에 없다.
따라서 dynamic textfield 를 사용하여 text 를 embed 해야한다. 물론 폰트크기에 따라 늘어나는 용량은 감안해야한다.

요즘같이 인터넷 대역폭이 많이 개선된 상황에서는 100-200k 용량 늘어나는 것이 그다지 큰 부담이 되지는 않겠지만 그래도 단지 버그로 인해 폰트를 임베는 한다는 것이 좀 찜찜하다.

한글….참 과학적이고 조형적인 글자라고 한다….하지만 이럴때 정말 한글을 쓴다는 것이 참 원망스럽다. 정말 혁신적인 한글문자 조합이 나와 영문과 같이 조합형의 구성으로 표현하지 않는한…..
이런 문제가 해결될 수 있을까…….?

(주의점…..한가지 dynamic textfield 를 사용할경우 꼭 multiline 으로…)

Mouse image scroll

mouse 반응에 따라 그리고 화면 사이즈에 따라 image movieclip 이 scroll 되도록 제작하려면 상황이 제작할때마다 달라 상당히 번거로웠는데 모든 경우를 일반활 할 수 있도록 모듈을 제작했다.
scroll_mc —> 스크롤될 무비클립

scroll_mc._height > Stage.height 일 경우에만 –> scroll Active!!!

*limit position setting : mouse 가 화면에서 움직일경우 scroll_mc이 움직일수 있는 한계값을설정

Top–> Stage.height – scroll_mc._height

Bottom—> 0

*화면사이즈에 비례한 단위 움직임 계산

Stage.height : (Bottom-Top) = 1 : x

x= -(Bottom-Top)/Stage.height

= Top/Stage.height

= Stage.height – scroll_mc._height / Stage.height

= 1- scroll_mc._height/Stage.height

따라서 , 현재 mouse point 좌표값(Ymouse) 에서 scroll_mc 의 Target position !!!

==> Ymouse * 1- scroll_mc._height/Stage.height

Limits of flash

Flash has some limits, very handy to know:

DOCUMENT

size:

-width: 1 to 2880

-height: 1 to 2880

drawing extents within:

-width: -720 to document width + 720

-height: -720 to document height + 720

-grid spacing: 7.2 to 288

-frame rate: .01 to 120

-frames: 16000

-layers: 16000

-movieclip instances: 16000

-loaded movies (in levels): 16000

MOVIECLIP

drawing extents within:

-width: -720 to 720

-height: -720 to 720 (1440×1440)

-_xscale/_yscale values: ~ 3276800

-_alpha values: 256

-_alpha steps: ~ .4 (don’t increment _alpha below that value)

-_x/_y steps: .05 (don’t increment _x/_y below that value)

-_rotation: -180 to 180 (you can set it to values beyond these but will revert to a value in that range)

-_rotation steps: .1 (_rotation wont be seen in increments below that value)

-attached clips before drastic attachMovie speed drop: ~ 800-1000 (common in grid creation; creating new clips to attach groups of clips, like each row, to will reduce the slowdown)

TEXT

-characters in a textfield: ~63000 (?)

-rotation of dynamic or input textfields w/o embedded fonts or static w/ device fonts: 0 (no rotation)

-max size of POST data (loadVars and XML Objects etc): around 64k

-characters for URLs set in Character panel: 127

SCRIPTING

depths:

-depths of existence: -16384 to 2130690045

(createEmptyMovieClip can surpass these values in creation but not always accurate

max reliable: 2147483647, min reliable: -2147483648)

-removable depths: 0 to 1048575

-recursive function call levels: 256

-loop calls: 400000 (?)

MISC

-Flash Player zoom: 2000%

-line thickness (Flash authoring): .1 to 10

-line thickness (AS): 0 to 256 (increments of 1; 0 is hairline)

-size of imported bitmap: 5×5 minimum

-shape hints: 0 to 26

Image smoothing

플래시 8로 버전업이 되면서도 이미지 스케일 변경이나 회전시 안타깝게도 이미지 지글거림 현상 버그는 없어지지 않았다.
갤러리 사이트를 만들면서 이상한 현상을 하나 발견했는데 이 문제를 해결하는 방법은 fla 파일 최상의 루트에 한개의 프레임만 존재하면된다는 것이다..
기술적으로 이유는 설명할수는 없지만 이것을 염두에 두면 프로젝트 막판에 이유없이 이미지 울렁증이 일어나 스트레스 받는 일이 없을듯하다.

까먹으면 안되는데….반드시 상기!!!!!!타임라인에 넣었을때

타임라인에 직접 넣었을때                     프레임 한개에 넣었을때

IE 패치에 대한 Flash Extention

IE 패치로 플래시가 활성화되지 않는 문제점을 해결하는 방법이 Extention 으로 배포됐다.

전에는 js 파일로 일일이 플래시 파일을 따로 빼야되서 번거로웠는데 ..근데 코드를 덮어쓰면 지저분한 코드들이 생기는 듯싶다. 자세히는 안봤지만….

  1. publish setting 에서 html 탭의 템플릿을 Active Content Update 로 선택해서 html 을 생성.
  2. Command 메뉴에서 Apply Active Content Update(업데이트 컨텐츠 적용) 클릭 해서 전에생성한 html 페이지를 덮어쓴다.

Flash Extention download