2017-02-17 15 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)です。このMovieClipをAS3コマンドでスケール/回転すると、この点を中心にスケール/回転します。 MovieClipの内容を(0,0)の周りに均等に配置するように再設計する必要があります。その場合、「ズームイン」の効果があります。

ムービークリップに「穴」やコンテンツの不一致がある場合は、透明なボタン(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

こんにちはを参照してみてくださいということだと思いますそれを試してもうまくいきませんでした。何らかの理由で、左上のコードから始まる縮尺に加えて、x座標とy座標が変化しているようです。 – tomtom123456

+0

編集された回答を参照してください。あなたの問題は 'this.scaleY * = 1.5'です。乗数文字を削除してください。 – Nemi

1

私は「、理由は、x、yの値が変更されていない、this post

+0

こんにちは、私はそれを試みましたが、何らかの理由でxとyの値がASスクリプトにないのに変わっているようです... – tomtom123456