Flash

    FlashPlayer10.0부터 로드된 AVM1의 컨텐츠는 AVM2에서 보여줄 수 없다.

    "ArgumentError: Error #2180: AVM1 내용(AS1 또는 AS2)이 AVM2(AS3) 내용으로 로드된 경우 AVM1 내용을 displayLis의 다른 부분으로 이동할 수 없습니다." Flash Player 9.0 버전에서는 as3.0으로 만든 플래시에서 as1.0혹은 as2.0으로 만든 플래시를 불러와서 화면상에 보여줄 수 있었다. 하지만 Flash Player10.0버전에서부터 이는 허용되지 않는다. 해결방법은 퍼블리싱할 때 플레이어버전을 Flash Player 9로 해놓고 퍼블리싱하면 되지만 너무나도 깔끔하지 못한 방법이다. 해당 링크를 통하여 자세한 설명과 꼼수로 해결할 수 있는 방법을 살펴보자... http://blog.jidolstar.com/582

    FireFox에서 간단하게 플래시 휠 사용하기

    플래시에서 마우스 휠을 굴렸을 시에 파이어폭스에서는 동작이 되지 않는다. 이를 해결하기 위한 방법이 많은데 자바스크립트로 어렵게, 혹은 복잡하게 해결한 것이 많다. 하지만 간단하게 해결한 것이 일본 프로젝트팀 spark에서 나왔다! http://blog.jidolstar.com/577 하지만 swfobject.js를 사용하여 플래시 임베드했을 때만 wmode 상관없이 잘 된다. swfobject를 사용하지않고 플래시에서 뽑아낸 임베드 방식을 사용하니 wmode가 window일때만 파이어 폭스에서 동작했다.

    플래시에서 마우스 우클릭시 메뉴 안뜨게 하기

    플래시 + 자바스크립트를 이용하여 플래시에 마우스 우클릭시 나타나는 메뉴를 안나타나게 할 수 있다. 구글 소스 또한, VC++에 플래시가 탑재했을 경우엔 VC++에서 마우스 후킹을 통해 마우스 이벤트가 OS에 전달되기 전에 막아버리는 방법도 있다.

    MouseEvent.MOUSE_WHEEL 포커스 버그

    MouseEvent.MOUSE_WHEEL이벤트를 이용하여 플래시에서는 마우스 휠을 사용할 수가 있다. 그러나, 플래시가 페이지에 임베드 완료되고 플래시가 보여진 후에 마우스 휠을 굴리면 아무 반응도 하지 않는다. 꼭 플래시를 한번 클릭을 해서 포커스를 줘야지만 마우스 휠이 먹는다. 이럴 땐 이런 방법을 쓴다. 이렇게 되면 포커스를 바로 플래시에서 가져가기 때문에 클릭없이 바로 휠을 사용할 수 있다. 주의할 점은, body태그의 onload 속성에 써야지만 한다는 것이다. 별도의 자바스크립트 함수를 만들어서 플래시에서 호출해도 휠은 먹지 않는다.

    디버거 플레이어 설치 후 런타임 오류시 파이어폭스 뻗을 때

    파이어폭스를 설치한 후 플래시 디버거 플레이어를 설치했다. 그런데 전에는 안그랬는데 플래시 런타임 오류창이 뜨면 파이어 폭스가 상당 시간 멈추는 현상이 발생했다. 해결 방안을 찾아보았다. 초간단!!

    NetStream.Seek.InvalidTime

    NetStream클래스에 NetStatusEvent.NET_STATUS 이벤트 리스너를 등록하면 event.info.code를 통해 객체의 상태나 오류 상태를 알 수 있다. 프로그레스바를 통하여 동영상의 플레이 시간을 검색할 수 있는데, 만약 동영상의 총 길이보다 넘어선 시간을 검색하려고 하면 InvalidTime에러가 발생한다. "NetStream.Seek.InvalidTime"을 플래시 도움말에서 이렇게 나타내고 있다. 점진적 다운로드를 통해 다운로드된 비디오에 대해 사용자가 지금까지 다운로드된 비디오 데이터의 끝 부분을 지나서 검색 또는 재생하려고 했거나, 전체 파일이 다운로드된 이후에 비디오 끝 부분을 지나서 검색 또는 재생하려고 했습니다. message.details 속성에는 검색할 수 있는 최..

    서버 위치가 서로 다른 html과 swf간의 자바스크립트 소통하기

    크로스 도메인에 대한 내용은 알고 있었으나... 서로 다른 위치의 html과 swf가 소통하기 위해선 Security.allowDomain이 사용될 줄은 몰랐다. 말마따나 서로 다른 위치의 html과 swf과 자바스크립트를 서로 사용하고 공유하기 위해선 2가지의 중요한 설정이 필요하다. html : allowAccessScript를 always로 설정한다. 이걸 설정해 줌으로써 플래시는 자바스크립트의 함수를 호출할 수 있게 됐다.(ExternalInterface.call) swf : Security.allowDomain(html이 위치한 도메인); 을 적어준다. "*"로 표시하면 모든 사이트를 허용하겠다는 이야기다. 이걸 설정해 줌으로써 자바스크립트는 플래시 함수를 호출할 수 있게 됐다.(External..

    TextField.setSelection 사용하기

    TextField의 setSelection 함수를 사용하면 텍스트 필드의 일정 범위를 선택되게 할 수 있다. 하지만 setSelection함수는 해당 텍스트필드가 포커스를 가지고 있어야 한다. 포커스가 가있지 않으면 setSelection 함수는 먹통이 된다. stage.focus = 텍스트필드 로 포커스를 텍스트 필드에 맞춰놓은 후에 setSelection 함수를 실행시키면 잘 실행된다. 예제보기