mouseWheel 에 해당하는 글1 개
2007/02/12   SWFObject add-on: MouseWheel on Mac

flash/Tip | 2007/02/12 17:21
관련사이트
http://blog.pixelbreaker.com/flash/swfmacmousewheel/

다운로드

mac os 상에서의 Flash Player 는 마우스 휠을 감지하지 못한다. 따라서 이 문제를 해결하려면
플래시 내부에서 마우스 휠반응을 체크하는 것이 아니라 자바스크립트로 마우스 휠을 감지하여
플래시로 알려줘야 된다.

SWFMacMouseWheel 라는 자바스크립트 파일을 사용하여 플래시의 내부 함수를 호출한다.
그리고 플래시에서는 ExternalInterface를 사용하여 자바스립트에서 호출하는 함수를 받아서
마우스 휠 반응을 처리한다.

<actionscript code>

import flash.external.ExternalInterface;
import com.pixelbreaker.event.EventBroadcaster;
/**
 * @author Gabriel Bucknall
 *
 * Class that supports using the mouseWheel on Mac OS, requires javascript class
 * swfmacmousewheel.js
 */
class com.pixelbreaker.ui.MouseWheel
{
 private static var isMac:Boolean;
 private static var macBroadcaster:EventBroadcaster;
 
 private static function main():Void
 {
  isMac = System.capabilities.os.toLowerCase().indexOf( "mac" ) != -1;
  if( isMac )
  {
   macBroadcaster = new EventBroadcaster();
   ExternalInterface.addCallback( "externalMouseEvent", MouseWheel, MouseWheel.externalMouseEvent );
  }
 }
 /**
  * Add a listener for using the mouseWheel
  * obj param must have an "onMouseWheel" method to be called.
  */
 public static function addListener( obj:Object )
 {
  if( !isMac ) MouseWheel.main();
  if( isMac )
  {
   macBroadcaster.addListener( obj );
  }else{
   Mouse.addListener( obj );
  }
 }
 
 /**
  * Remove a listener
  */
 public static function removeListener( obj:Object ):Void
 {
  if( isMac )
  {
   macBroadcaster.removeListener( obj );
  }else{
   Mouse.removeListener( obj );
  }
 }
 
 private static function externalMouseEvent( delta:Number ):Void
 {
  macBroadcaster.broadcastMessage( "onMouseWheel", delta );
 }
}

<frame code>

MouseWheel.addListener(this);

타임라인 상에 MouseWheel Class 를 사용하여 리스너를 생성한다.



<html code>

<script type="text/javascript">
     // <![CDATA[
      var so = new SWFObject('test.swf', 'website', '100%', '100%', '8', '#FFFFFF');
      so.useExpressInstall('js/expressinstall.swf');
      so.addParam('menu', 'false');
      so.addParam('scale', 'noscale');
      so.addParam('salign', 'lt');          
     
 
      //change below
     if(so.write('flashcontent')){
        var macmousewheel = new SWFMacMouseWheel( so );
      }
     // ]]>
</script>

SWFObject 를 사용하여 swf 파일을 임베드하였다. 마지막 줄 코드만 삽입하면 html
상에서 플래시로 마우스 휠반응을 감지하여 값을 보낼수 있다.




 
 
태그 : , , , ,
이 글의 관련글(트랙백) 주소 :: http://kimkijeung.com/trackback/85

Name 
Password 
Homepage 
  secret
Comment 
  글쓰기


[PREV] [1] [NEXT]

 
전체 (105)
flash (74)
math&physics (4)
programming (11)
Flex2 (1)
Mac (2)
photo (0)
project (6)
주저리주저리 (3)
유용한 자료들 (1)
diary (0)
Book (1)
web (2)
«   2009/01   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31