2012-05-10 4 views
-1

나는 화면에서 마우스를 움직이는 것에 관한 프로젝트를하고 있습니다. 따라서 어도비 플래시 프로와 액션 스크립트 2를 사용해서 그것을하고 싶습니다. 여기에 작업 : - 간단한 애니메이션 (예 : 거미가 가득 찼다가 화면에서 위로부터 아래로 뛰어 오름) - 마우스가 움직이면 애니메이션이 뒤집을 것입니다 (모든 거미 애니메이션이 되돌아와 숨길 것입니다 화면의 맨 위로 돌아온 곳에서). - 마우스가 60 초 후에 움직이지 않으면 마우스가 화면에서 다시 움직일 때까지 애니메이션이 다시 발생합니다 (거미 애니메이션이 다시 발생합니다).액션 스크립트 2 제안

나는 애니메이션 거미 "무비 클립"을 만들었습니다 (거미 애니메이션이 내려 가고 있습니다) - 애니메이션을 역순으로 만들기 위해 어떤 스크립트를 작성해야합니까? 2 - 어도비에게 마우스가 움직이거나 움직이지 않는다고 말하면 거미 애니메이션이 어떻게 되나요? 그런데

, 나는 내가 나 액션 스크립트 3도 덕분에 그것을 할 수 있도록 어떤 제안 도움 * 괜찮 감사 액션 스크립트 2.0 에서 매우 초보자입니다.

+7

액션 스크립트 2는 오래된 것입니다. 액션 스크립트 3을 사용하고 싶지 않으십니까? – evilpenguin

+1

Flex는 ActionScript 3에서 제작되었으며 버전 2부터 사용 되었기 때문에 Adobe Flex Tag를 제거했습니다. ActionScript 2 버전의 Flex는 상당한 비용이 드는 서버 측 제품이었습니다 (CPU 당 $ 10K 이상). 또한; Flash Pro 내부에서 Flex를 사용하는 것은 매우 어렵습니다. 당신이 초심자 인 경우에 다만 배우기; 왜 ActionScript 2를 사용 했습니까? 6 년 전 모든 의도와 목적으로 무용지물이되었습니다. – JeffryHouser

+0

좋아요, 제가 왜 액션 스크립트 2를 사용했는지 물어 보았습니다. 액션 스크립트 3을 사용하여이를 수행하는 방법을 배우고 싶지만 액션 스크립트 3에서 어떻게 할 수 있습니까? –

답변

0

오 마이. AS2 :)

먼저 OK 두 개의 다른 애니메이션을 만드는 것이 더 쉬울 것이라고 생각합니다. 거미가 걷기위한 거. 다른 하나는 걸어 올라간다. MovieClip을 뒤집을 수는 있지만 초보자라면 기본을 고수 할 것입니다.

3 명이 필요하다고 생각합니다.

1) 스파이더 클립. 내려 가서. AS3에서 2) 간격 (타이머)

var interval:Number = setInterval(spidersComeOut, 60 * 1000); 

3) 마우스 이동 청취자

root.onMouseMove = function() 
{ 
    //swap your spider clips 
    //move the spider up again 
    //reset the interval with clearInterval(interval) and restart it again.   
} 

이 마우스 이동에 대한 아주 기본적인 핸들러입니다. 희망이 조금 도움이되기를 바랍니다. 이것은 완벽한 해결책이 아닙니다. 그것은 상자 밖으로 작동하지 않습니다.

마지막에 한 가지. AS2를 처음 접한다면 as3을 줄 것을 권장합니다. 시작하기가 더 어렵지만 as2와 함께 AS3 문제에 도움을 줄 수있는 사람들이 더 많습니다.

0

AS3을 사용할 준비가되었다고 했으므로 여기에 해결책이 있습니다.

기본 타임 라인/스테이지에 배치 한 거미 애니메이션이 포함 된 별도의 무비 클립이 있다고 가정합니다.

1. MovieClip을 스테이지에 놓고 인스턴스 이름을 'spiders'로 지정합니다. 이 영화 클립은, 첫 번째 프레임이 코드를 삽입

2.inside는

import flash.events.Event; 

stop(); 

var _dir:int = 1; 

addEventListener(Event.ENTER_FRAME, onEF); 
function onEF(e:Event):void 
{ 
    getNextAnimationFrame(); 
} 

function getNextAnimationFrame():void 
{ 
    var frameNum:int = currentFrame + _dir; 
    if (frameNum < 1 || frameNum > totalFrames) 
    { 
     removeEventListener(Event.ENTER_FRAME, onEF); 
    } 
    frameNum = Math.max(1, Math.min(totalFrames,frameNum)); 

    gotoAndStop(frameNum); 
} 

function changeDirection($dir:int):void 
{ 
    _dir = $dir; 
    removeEventListener(Event.ENTER_FRAME, onEF); 
    addEventListener(Event.ENTER_FRAME, onEF); 
} 

3 (그것은 애니메이션 revesing 처리한다).(첫 번째 프레임에서) 기본 타임 라인에이 코드를 넣어 :

import flash.utils.Timer; 
import flash.events.TimerEvent; 
import flash.events.MouseEvent; 

var timer:Timer = new Timer(60 * 1000, 1); 
timer.start(); 
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTime); 

stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove); 

function onTime(e:TimerEvent):void 
{ 
    trace("it's time"); 
    spiders.changeDirection(1); 
} 

function onMove(e:MouseEvent):void 
{ 
    timer.reset(); 
    timer.start(); 
    spiders.changeDirection(-1); 
} 

하나의 코드에 마우스, 타이머 및 애니메이션을 처리 할 수있을 것이다, 그것을 만들 것 그러나 방법을 지금 OOP의 종류입니다 어떤 시점에서 제대로 빌드하기로 결정했다면이 코드를 별도의 클래스로 '다시 작성'하는 것이 매우 쉽습니다.

관련 문제