태그 보관물: SWC

KineticScroll 소스 및 샘플 다운로드

그동안 만들고 있던 KineticScroll 을 SWC 형식으로 공개합니다.

이전 포스트에서와 마찬가지로, 다음과 같이 간단하게 사용할 수 있습니다.

var ks1:KineticScroll = new KineticScroll();
ks1.setTarget(mc1, 0, 400);

필요에 따라서 KineticScrollEvent.UPDATE 이벤트 리스너를 등록하여, 별도의 동작을 하도록 처리도 가능합니다. 예를 들어 스크롤바와 연결 시켜야 한다던가 하는 경우 말이죠.

var ks2:EndlessKineticScroll = new EndlessKineticScroll();
ks2.addEventListener(KineticScrollEvent.UPDATE, ksListener2);
ks2.setTarget(mc2);
 
function ksListener2(e:KineticScrollEvent):void{
    // 별도 처리 코드
}

샘플 및 소스 다운로드: KineticScroll_Samples

JSAgent, JavaScript 연동을 편하게???

플래시와 자바스크립트 사이에 연동을 좀 편하게 하려고 만든 어플. 이전 프로젝트에서 자바스크립트 연동이 많아서, 이를 좀 쉽게 처리하기 위한 유틸이었는데, 이걸 다시 만들어 봤습니다.

자바스크립트에서 플래시로 데이터를 보낼 때는 다음 코드와 같이 플래시 객체에서 sendToFlash() 함수를 호출합니다.

var data = new Object();
data.message = "message from JavaScript";
flashObj.sendToFlash(data);

자바스크립트에서 보낸 데이터를 받기 위해서는 아래와 같이 이벤트를 등록해 줍니다.

JSAgent.addEvent(receiveFromJS);
function receiveFromJS(e:JSAgentEvent):void
{
    trace(e.data.message);
}

반대로, 플래시에서 자바스크립트로 데이터를 보내려면 JSAgent.sendToJS() 함수를 사용합니다.

var data = new Object();
data.message = "message from Flash";
JSAgent.sendToJS(data);

이렇게 보내진 데이터를 받기 위해서 자바스크립트에서는 receiveFromFlash() 함수가 정의되어 있어야 합니다.

function receiveFromFlash(data)
{
    alert(data.message);
}

ExternalInterface를 사용할 때는 호출되는 함수명을 사용자가 지정할 수 있고, 파라메터의 갯수를 유동적으로 처리할 수 있다는 부분이 장점일 수 있지만, 경우에 따라서는 단점이 될 수도 있습니다. 유동적인 파라메터를 …args와 같이 배열로 받아서, 다시 apply() 등의 함수와 엮어줘야 하죠.
그래서 플래시 쪽에서 받는 함수명은 sendToFlash, 플래시에서 호출하는 자바스크립트 함수명은 receiveFromFlash로 고정시켰으며, 또한 파라메터는 하나만 사용하는 대신 Object 객체의 속성에 전달할 데이터를 넣는 구조로 만들었습니다.
사실 사용성 면에서 EI를 개선한 부분은 별로 없습니다. 그냥 EI를 사용하는 편이 나을지도……

샘플 및 소스 다운로드: JSAgent_Samples