Динамическая ширина сцены и высота во Flash AS3 - PullRequest
3 голосов
/ 07 мая 2009

Кажется, это было бы действительно легко сделать, но это доставляло мне все виды головной боли. У меня есть мувиклип, который является галереей, он связан с вызовом из 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

Ни один из них не помещает изображение в правильное место.

Ответы [ 2 ]

4 голосов
/ 07 мая 2009

Установите это свойство, чтобы ваша сцена имела свое оригинальное значение (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;
0 голосов
/ 13 января 2010

MovieClip(root).addChild(myFull); не забудьте сделать то же самое с removeChild

...