3

これは本当に簡単なことのように思えますが、あらゆる種類の頭痛の種になっています。ギャラリーであるムービークリップがあります。ボタンがクリックされたときに AS から呼び出されるようにリンクされています。ギャラリー内の画像をクリックすると、Tween クラスを使用してフェードインし、メイン ステージの中央に配置されるはずですが、代わりにムービークリップに中央配置されます。

コードは次のとおりです。

//Centers and places image right ondo the display board
function fullLoaded(e:Event):void {
    var myFull:Loader = Loader(e.target.loader);
    addChild(myFull);

    //positioning
    myFull.x = (stage.stageWidth - myFull.width) / 2;
    myFull.y = (stage.stageHeight - myFull.height) /2;

    //register the remove function
    myFull.addEventListener(MouseEvent.CLICK, removeFull);

    new Tween(myFull, "alpha", Strong.easeInOut,0,1,0.5,true);
}

これらの組み合わせをすべて試しましたが、役に立ちませんでした。

MovieClip(root).stage.stageWidth  
root.stage.stageWidth  
parent.stage.stageWidth

これらのどれも、画像を正しい場所に配置しません。

4

2 に答える 2

4

これらのプロパティを設定して、ステージの左上にオリゴ (0x0) を表示します。

stage.align = StageAlign.TOP_LEFT;

これにより、ウィンドウのサイズが変更されてもステージが同じスケールのままになります。

stage.scaleMode = StageScaleMode.NO_SCALE;

次に、画像が読み込まれるまで待ってから整列する必要があります。それまでは幅がないためです。ステージで聞くこともお勧めしEvent.RESIZEます。これは、サイズが変わるたびに発生します。

現在のコードがすべて正常に動作すると仮定します。

myFull.x = (stage.stageWidth - myFull.width) / 2;
myFull.y = (stage.stageHeight - myFull.height) /2;
于 2009-05-07T10:47:11.473 に答える
0

MovieClip(root).addChild(myFull); に同じことをすることを忘れないでくださいremoveChild

于 2010-01-13T08:52:26.707 に答える