| DZHETIGAPA |
21.05.2011 22:47 |
Неправильный расчет ширины в браузере
Уже несколько часов пытаюсь решить пробелму непонятного поведения в браузерах флэшки.
Есть менюшка, которая состоит из частей. Все это запихивается в спрайт. Если ширина менюшки больше ширины сцены, то менюшка скайлится по ширине сцены. Аналогично ставится на ресайз. Вот код:
Код AS3:
private function onStage(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, onStage);
stage.addEventListener(Event.RESIZE, onResize);
root.transform.perspectiveProjection.projectionCenter = new Point(stage.stageWidth / 2, stage.stageHeight / 2);
//Дабавление подменюшек в спрайт-меню
for (var i:int = 0; i < 10; i++ )
{
try
{
massivMenu[i] = new PartMenu(Lib.data.cat[4].string[i + 1].text[1]);
massivMenu[i].x = menuWidth;
massivMenu[i].buttonMode = true;
massivMenu[i].mouseChildren = false;
massivMenu[i].name = String(i);
massivMenu[i].addEventListener(MouseEvent.CLICK, clickMenu);
massivMenu[i].addEventListener(MouseEvent.MOUSE_OVER, menuOver);
massivMenu[i].addEventListener(MouseEvent.MOUSE_OUT, menuOut)
menuWidth += massivMenu[i].width +2;
menu.addChild(massivMenu[i]);
}
catch (err:Error)
{
}
}
menu.x = -Math.round(menu.width / 2);
menu.y = -Math.round(menu.height / 2) ;
addChild(menu);
this.y = stage.stageHeight/2 + 100;
this.x = stage.stageWidth / 2;
if (menuWidth > stage.stageWidth) this.width = stage.stageWidth - 150;
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
}
private function onResize(e:Event):void
{
this.y = stage.stageHeight/2 + 100;
this.x = stage.stageWidth / 2;
root.transform.perspectiveProjection.projectionCenter = new Point(stage.stageWidth / 2, stage.stageHeight / 2);
if (menuWidth >= stage.stageWidth) this.width = stage.stageWidth - 150;
else this.width = menuWidth;
}
Локально все работает отлично. Вылаживаю на сервер. При добавлении на сцену все отлично. Но, когда происходит ресайз, то менюшка очень уменьшается в размерах. Вот протрейсенные данные
Код AS3:
this.width:2652// хотя на глаз она выглядит пикселей 500
stage.stageWidth: 1891
menuWidth: 1303//постоянная величина
Как такое может быть? Реально же менюшка максимум 500 пикселей занимает, хотя ширина при данном учловии должна быть 1303.
Кто сможет объяснить, что это такое???
|