Я заметил этот полный флеш сайт и удивляюсь
http://www.houseoforange.nl/site/#/Photographers/Philip%20Riches/editorial%20women/
Как я могу применить метод изменения размера, как они это сделали?
Любые примеры могут мне очень помочь.
У меня есть один main.swf и page.swf, который загружается в main.swf.
Мой page.swf содержит уменьшенные изображения, и он уже находится в середине сцены.
Когда запускается handleResizeObjectOnStage, он снова начинает центрироваться на сцене. Но это не тот же самый центр, примененный к page.swf
Я хочу иметь возможность изменять размеры, как в примере, который я опубликовал.
Вот что я сделал до сих пор:
// Constructor
public function Gallery()
{
addEventListener(Event.ADDED_TO_STAGE, handleOnStage, false, 0, true);
}
private function handleOnStage(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, handleOnStage);
tabSWFLoader = Vector.<String>([INTRO_SWF, ...]);
loader = new Loader();
nextMC = new Sprite(); // uses to load next page
currentMC = new Sprite();
initObjectsOnStage(event);
initIntro();
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, handleResizeObjectsOnStage, false, 0, true);
}
private function handleResizeObjectsOnStage(event:Event=null):void
{
removeEventListener(Event.RESIZE, handleResizeObjectsOnStage);
initObjectsOnStage(event);
}
private function initObjectsOnStage(event:Event):void
{
initBackground();
initMenu();
var definedWidth:Number = stage.stageWidth;
var definedHeight:Number = stage.stageHeight;
if (event.type == Event.RESIZE) {
var tempMC:Sprite = getCurrentMC();
tempMC.x = (definedWidth - tempMC.width) * 0.5;
addChild(tempMC);
}
}
private function initIntro():void
{
loader.load(new URLRequest(tabSWFLoader[currentIndexSWF]));
loader.contentLoaderInfo.addEventListener(Event.OPEN, handleDisplayIntroImage, false, 0, true);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleCompletedIntroImage, false, 0, true);
}
private function handleDisplayIntroImage(event:Event):void
{
currentMC.alpha = 0;
TweenLite.to(currentMC, DELAY, { alpha:1, ease:Linear.easeIn });
addChild(currentMC);
}
private function handleCompletedIntroImage(event:Event):void
{
// Add into currentMC
currentMC.addChild(loader);
}
Я также пытался использовать scaleX / scaleY, получил неловкий результат
private function initObjectsOnStage(event:Event):void
{
...
var определенныеWidth: Number = stage.stageWidth;
varfinedHeight: Number = stage.stageHeight;
if (event.type == Event.RESIZE) {
var tempMC:Sprite = getCurrentMC();
addChild(tempMC);
var scaleX:Number = definedWidth/tempMC.width;
var scaleY:Number = definedHeight/tempMC.height;
(scaleX > scaleY) ? scaleX = scaleY : scaleY = scaleX;
tempMC.scaleX = scaleX;
tempMC.scaleY = scaleY;
}
}