2

ボタンを含むメインメニューをプログラムしようとしています。MenuAchievementsButton というクラスがあり、そのコンストラクターでは、ドキュメント クラスからステージの幅とステージの高さが渡されます。これをなぞってみると、正しい幅・高さです。

ボタンの高さをステージの高さ / 100 にしようとしています。これをやってみました.height = ステージの高さ / 100 ですが、そうするたびに、入力した場合でも、必要な結果の 4 倍が得られます5 のような数字で、Photoshop で px を測定します。

また、オブジェクトを移動しようとすると、同様の問題が発生します。たとえば、左右に 20 ピクセルにしたい場合は、左右に 80 ピクセルになります。

どんな助けでも大歓迎です!

    package menus {

import flash.display.MovieClip;


public class MenuAchievementsButton extends MovieClip {
    private var _stageWidth, _stageHeight:int;

    public function MenuAchievementsButton(stageWidth:int, stageHeight:int) {
        _stageWidth = stageWidth;
        _stageHeight = stageHeight;

        alpha = 1;
        rescaleMe();
        repositionMe();
        trace(_stageWidth, _stageHeight);
    }

    private function rescaleMe():void {
        var oldWidth = this.width;
        var oldHeight = this.height;

        this.height = _stageHeight/100;
        this.width = (this.height * oldWidth) / oldHeight;
    }

    private function repositionMe():void {
        this.x = 20;
        this.y = 20;
        trace(x,y,width,height);
        trace("Stage height is: ",_stageHeight,"Stage height divided by 100 is: ", _stageHeight/100, "And the object's height, which should be stageheight / 100 is:", this.height);
        //Gives Stage height is:  800 Stage height divided by 100 is:  8 And the object's height, which should be stageheight / 100 is: 8
        //Actually, though, it's 36px!
    }
}

}

4

1 に答える 1

0

コードは正しいようです。そこに問題はありません。

クラスのインスタンスはステージに追加されていますか? または他のオブジェクトで?

次のように、親のスケールを変更しないかどうかを確認します。

var parentMC:MovieClip=new MovieClip();
addChild(parentMC);

var rectangle:Shape = new Shape; // initializing the variable named rectangle
rectangle.graphics.beginFill(0xFF0000); // choosing the colour for the fill, here it is red
rectangle.graphics.drawRect(0, 0, 100,100); // (x spacing, y spacing, width, height)
rectangle.graphics.endFill(); // not always needed but I like to put it in to end the fill
parentMC.addChild(rectangle); // adds the rectangle to the stage

trace(rectangle.width) // result 100

parentMC.scaleX=2;
trace(rectangle.width) // result 100 altough it looks like it has 200
于 2013-08-19T12:07:13.647 に答える