파일정리하다가 찾았네요~!
공부하실 분들을 위해 허접하지만 올려봅니다.
프로토타입형태라서 사용하기 뭐한 상태라 간단히 Today로 가는 버튼과 하단에 년도를 추가하였습니다.(년도도 없었어요 ㅎㅎ)
| FLA다운로드 |
|
플래시에서 ExternalInterface class 를 사용하여 외부 자바스크립트와 연동할때
자바스크립트의 소스를 html 주석이 감싸고 있으면 동작이 안된다.
js)
<script type="text/javascript">
<!--
function CallAlert() {
alert("heyon.com");
}
-->
</script>
위의 <!-- --> 는 제거를해서 사용하면 호출이된다.
문제와 답 모두가 아주심플하지만 개인적으로 계속 동작이 안되어 external을 잘못사용하고 있는지 flash 소스만 보느라 시간낭비한게 생각나 메모해둔다.
간단한 externalinterface 사용법.
// 클래스 참조
import flash.external.ExternalInterface;
// 외부인터페이스가 사용가능한지 여부를 체크
if (ExternalInterface.available) {
// 실행 - Argments는 javascript의 인자갯수만큼 맞추어 값을 보낼때 사용한다.
ExternalInterface.call("CallAlert" /*, Argments..*/);
}
papervision3d_2008_06_24.zip |
얼마전에 cs3의 내장 Tween 클래스로 작업을 하는데 이상한 문제가 발생하였다.
Tween이 플레이중일때 다른 Tween이 플레이되버리면 기존에 플레이 되던 Tween은 멈추던 것이다.
해결책으로 new Tween을 할때마다 변수명을 달리줘서 해결하였으나 검색해보니 cs3내장 Tween에 문제가 많다고 한다.
내가 좋아하는 lan fuller(flash monkey) 도 google tweener를 쓰는걸 알고 부터는 나도 google tweener를 사용하기 시작했다. 그렇다 난 완전 팔랑귀다.ㅋㅋ
다운로드 URL : http://code.google.com/p/tweener/downloads/list
API Documentation : http://hosted.zeh.com.br/tweener/docs/en-us/
아직 사용해보지는 않았지만 포인트 지점을 정해줘서 곡선운동도 간단히 표현가능한것으로 보인다.
아래는 API Documentation 에 있는 Transition 예제들이다.
예제소스 - google tweener를 이용해서 drag&drop 을 허접하게 구현해보았다.
import flash.display.Sprite; import caurina.transitions.Tweener; // 컬러 리스트 수동으로 구성 OTL var colorList:Array = new Array(); colorList.push(0xFFCC00); colorList.push(0xEFC000); colorList.push(0xCACC00); colorList.push(0xBBCC0E); colorList.push(0xCACACA); colorList.push(0xEFEF00); /** * circle을 생성한다. * @param (string) circleName : circle 의 인스턴스명 * @return (Sprite) circle : 생성된 Sprite인스턴스 리턴 */ function createCircle(circleName:String = null, colorIdx:uint = 0):Sprite { var circle:Sprite = new Sprite(); circle.graphics.beginFill(colorList[colorIdx]); circle.graphics.drawCircle(60, 60, 60); circle.graphics.endFill(); circle.x = 0; circle.y = 0; circle.buttonMode = true; addChild(circle); return circle; } /** * 드래그 시작 * @param (MouseEvent) * @return */ function dragIt(e:MouseEvent):void { e.target.addEventListener(Event.ENTER_FRAME, runDrag); // 마우스를 target밖에서 떼었을때 - releaseOutSide 처리 function dispListener(disp_e:MouseEvent):void { // 중복 호출을 막기위해 mouse up 이벤트를 삭제 stage.removeEventListener(MouseEvent.MOUSE_UP, dispListener); // 초기 호출된 e.target으로 dropIt을 호출 dropIt(e); } stage.addEventListener(MouseEvent.MOUSE_UP, dispListener); } /** * 드래그 중단 * @param (MouseEvent) * @return */ function dropIt(e:MouseEvent):void { e.target.removeEventListener(Event.ENTER_FRAME, runDrag); } /** * 드래그 하는동안의 Tween 처리 * @param (Event) * @return */ var tweenEffect:Object = null; function runDrag(e:Event):void { tweenEffect = { x:(mouseX-(e.target.width/2)), y:(mouseY-(e.target.height/2)), time:2, transition:'easeOutElastic' }; Tweener.addTween(e.target, tweenEffect); } /** * 초기화 처리를 하는 메소드 * @param (MouseEvent) * @return */ function resetCircle(e:MouseEvent):void { for (var i:Number = 0; i < 6; i++) { removeChildAt(1); // 마우스를 눌렀을때 dragIt호출 createCircle(defaultName + i, i).addEventListener(MouseEvent.MOUSE_DOWN, dragIt); } } // 뿌립시다. var defaultName:String = 'myCircle'; for (var i:Number = 0; i < 6; i++) { // 마우스를 눌렀을때 dragIt호출 createCircle(defaultName + i, i).addEventListener(MouseEvent.MOUSE_DOWN, dragIt); } // 초기화 버튼 이벤트 reset.buttonMode = true; reset.addEventListener(MouseEvent.CLICK, resetCircle);
| FLA다운로드 |
|