2010-03-24 3 views
0

나는 MS는을 그리려는 순수 액션 스크립트 3.0액션 스크립트하는 EventDispatcher

  • 당신이 어떤 모양을 선택할 수 있습니다 도구 모음 (스타, 마음을 ...)와 Flash에서 간단한 프로그램처럼 페인트 쓰고 있어요
  • 각 단추가 색상 (빨간색, 녹색) 인 색상 옵션 용 도구 모음. 총 10 가지 색상이 있습니다.
  • 캔버스가 있습니다. 클릭하면 그 모양이 그려집니다. 나는/어디 상태 (사용자 선택)를 저장하는 방법 임 AS 확실하지에 새로 온 사람 때문에

나는 다음과 같은 클래스

class Main extends sprite 
class ColorButton extends sprite 
class ShapeButton extends sprite 

class Star() extends sprite // star object to be added to Main (canvas) 
class Heart() extends sprite // heart object to be added to Main (canvas) 

있습니다. 어떻게 버튼을 클릭하면 캔버스의 클릭이 변경됩니까? EventDispatcher를 사용해야한다고 생각합니까? 너희들이 나를 올바른 방향으로 가르쳐 줄 수 있니?

답변

0

두 가지 선택 사항이 있습니다. 정보를 모두 저장할 수있는 정적 클래스를 만들거나 캔버스 클래스에서 유지할 수 있지만 다른 기능에 많이 달려 있지만 단순함을 위해 캔버스를 사용합니다. .

사용하여 마우스 업 이벤트를들을 수 있습니다 예를 들어 작성하고 이벤트를 수신 할 필요는 EventDispatcher를 사용하는 :

ShapeButton.addEventListener(MouseEvent.MOUSE_UP, changeShape); 

다음 changeShape 함수를 호출하는이 경우에하는 것 아마 "브러쉬"모양의 변수를 설정하십시오.

private var paintShape:Class; 

public function Main(){ 
    paintShape = Star; // Make a star brush 
    addEventListener(MouseEvent.MOUSE_UP, paintObject); 
    //... 
} 

private function paintObject(ev:MouseEvent){ 
    var newShape = new paintShape() as Sprite; 
    newShape.x = mouseX; 
    newShape.y = mouseY; 
    addChild(newShape); 
} 

see livedocs for an overview of Events

: 나는 개인적으로 모양을 그림 것 스프라이트에 대한 참조, 예를 개최 변수를 사용합니다
관련 문제