Динамическая ширина и высота сцены во Flash AS3
-
08-07-2019 - |
Вопрос
Кажется, что это было бы действительно легко сделать, но это вызывает у меня всевозможные головные боли.У меня есть видеоролик, который представляет собой галерею, он связан для вызова из 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
Ни один из них не помещает изображение в нужное место.
Решение
Установите это свойство, чтобы ваша сцена имела свое оригинальное значение (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;
Другие советы
MovieClip(root).addChild(myFull);
не забудьте сделать то же самое с removeChild