Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Неправильный расчет ширины в браузере (http://www.flasher.ru/forum/showthread.php?t=156445)

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.

Кто сможет объяснить, что это такое???


Часовой пояс GMT +4, время: 12:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.