2017-02-17 3 views
1

최근 Actionscript 3에서 코딩 작업을 시작했으며 MovieClip의 크기를 조절할 때 문제가 발생했습니다.Actionscript 3 scaling

{ 
    private var valGrandX:Number; 
    private var valGrandY:Number; 
    public function Bonhomme_Fil() 
    { 
     valGrandX = this.scaleX; 
     valGrandY = this.scaleY; 

     this.addEventListener(MouseEvent.ROLL_OVER, big); 
     this.addEventListener(MouseEvent.ROLL_OUT, small); 
    } 
    private function big(event:MouseEvent):void 
    { 
     this.scaleX *= 1.5; 
     this.scaleY *= 1.5; 
    } 
    private function small(event:MouseEvent):void 
    { 
     this.scaleX = valGrandX; 
     this.scaleY = valGrandY; 
    } 
} 

내 목표는 클립이 사용자의 마우스가 가리킬 때 더 큰되고, 그가 외부 놓을 때 정상 크기로 돌아 것입니다. 무슨 일이 일어나는지는 그것이 더 큰 크기로 비례 할 때 그것은 아래쪽과 오른쪽으로 움직이고, 앞뒤로 깜박 거리게됩니다.

답변

1

MovieClip을 디자인 할 때 가운데에 작은 (+) 표시가 있습니다. 이 점은 MovieClip 자체의 (0,0)이고 MovieClip의 부모 좌표에있는 (x, y)입니다. AS3 명령으로이 MovieClip의 크기를 조절하거나 회전하면이 지점을 중심으로 크기가 조절되거나 회전합니다. MovieClip의 내용을 다시 디자인하여 (0,0) 주위에 동일하게 배치해야합니다. 그러면 "확대/축소"효과가 나타납니다.

MovieClip에 "구멍"이 있거나 마우스의 콘텐츠 불일치가있는 경우 투명한 버튼 (4 번째 프레임 - 히트 영역 전용)을 추가 할 수 있습니다.

1

MouseEvent.MOUSE_OVERMouseEvent.MOUSE_OUT을 사용해보세요.

확인 what is the difference between roll over and mouse over?

또는 같은 설정 코드 :

private var valGrandX:Number; 
private var valGrandY:Number; 
public function Bonhomme_Fil() 
{ 
    valGrandX = this.scaleX; 
    valGrandY = this.scaleY; 

    addEventListener(MouseEvent.ROLL_OVER, big); 
} 
private function big(event:MouseEvent):void 
{ 
    //this.scaleX *= 1.5; 
    //this.scaleY *= 1.5; 
    this.scaleX = 1.5; 
    this.scaleY = 1.5; 

    removeEventListener(MouseEvent.ROLL_OVER, big); 
    addEventListener(MouseEvent.ROLL_OUT, small); 
} 
private function small(event:MouseEvent):void 
{ 
    this.scaleX = valGrandX; 
    this.scaleY = valGrandY; 

    addEventListener(MouseEvent.ROLL_OVER, big); 
    removeEventListener(MouseEvent.ROLL_OUT, small); 
} 
+0

안녕을 참조 해보세요 것을 생각 ve는 이것을 시도하고 그것은 작동하지 않았다. 웬일인지 x와 y 좌표가 왼쪽 상단 코드에서부터 시작하여 눈금이 변경되는 것 같습니다. – tomtom123456

+0

수정 된 답변보기 그러면 문제는'this.scaleY * = 1.5'입니다. 배율 문자를 제거하십시오. – Nemi

1

나는 이유는 X가 Y 값은 변경되지 않습니다, 나는 'this post

+0

안녕하세요, 나는 그것을 시도해 봤지만 x와 y의 값이 AS 스크립트에 없더라도 변경되는 것으로 보입니다 ... – tomtom123456