[카테고리:] AS3

  • 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

  • Kinetic scrolling experiment 3.

    세 번째로 만든 키네틱 스크롤 샘플. 버그 수정 및 플리킹 감도 조절 등 수정이 있습니다.

    다음 코드와 같이 최대한 간단히 사용할 수 있도록 만드는 중……

    var flicking0:KineticScroll = new KineticScroll();
    flicking0.setTarget(mc0, 0, 400);

    물론 2,3번째 롤링 효과같이 부가적인 기능들을 적용하기 위해서는 코드를 더 추가해 주어야 하죠.

    var flicking2:EndlessKineticScroll = new EndlessKineticScroll();
    flicking2.addEventListener(KineticScrollEvent.UPDATE, flickingListener2);
    flicking2.setTarget(mc2);
    
    function flickingListener2(e:KineticScrollEvent):void{
    	var ty:Number = -int(mc2.y / HEIGHT + 1);
    	var sq:ListItem;
    	for(var i:uint=0; i
    
  • Kinetic scrolling experiment 2.

    두 번째로 만든 키네틱 스크롤(플리킹) 효과. 스크롤이 되는 도중에는 MOUSE_DOWN 이벤트가 디스패치되지 않도록 하여, 프레스 및 클릭이 실행되지 않도록 했습니다.

  • Kinetic scrolling experiment.

    I am working on a kinetic scrolling, recently. This is what it works.