2010-02-13 3 views
1

Кто-нибудь еще испытал странные поведения и неожиданные значения при проверке на stage.stageHeight, когда у вас есть Bandwith Profiler, открытый в Flash IDE?Странное поведение чтения stage.stageHeight, когда Bandwith Profiler открыт

Скажем, я использую это для тестирования Перлин шума вещи:

package { 

    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 

    import flash.display.Sprite; 
    import flash.display.Bitmap; 
    import flash.display.BitmapData; 
    import flash.events.Event; 
    import flash.geom.Point; 

    [SWF(width="550", height="400", backgroundColor="#000000", frameRate="60")] 
    public class Clouds extends Sprite { 
     private var _bitmap:BitmapData; 
     private var _xoffset:int = 0; 
     private var _yoffset:int = 0; 

     public function Clouds() { 
      stage.align = StageAlign.TOP_LEFT; 
      stage.scaleMode = StageScaleMode.NO_SCALE; 

      trace("stage.stageHeight: "+stage.stageHeight); 

      _bitmap = new BitmapData(stage.stageWidth, stage.stageHeight,true, 0xffffffff); 
      var image:Bitmap = new Bitmap(_bitmap); 
      addChild(image); 
      addEventListener(Event.ENTER_FRAME, onEnterFrame); 
     } 

     public function onEnterFrame(event:Event):void { 
      _xoffset = _xoffset + Math.random()*4 -2; 
      _yoffset = _yoffset + Math.random()*3; 
      var point:Point = new Point(_xoffset, _yoffset); 

      _bitmap.perlinNoise(200, 100, 3, 1000, false, true, 
          1, true, [point, point]); 
     } 
    } 
} 

Как вы видите здесь, SWF, устанавливается на высоте 400 .. При выполнении испытуемым фильма, управление войти , трассировка возвращает 400. Теперь, если вы попробуете это с открытым профилем ширины полосы пропускания, оно вернет 300, а Sprite будет только до 300 высоты.

Любой, кто испытывает то же самое ??

ответ

0

В этом нет ничего странного. Высота сцены, которую вы установили, является стандартной по умолчанию, но размер сцены может измениться, если пользователь, браузер или в этом случае FlashIDE изменяет размер окна проигрывателя (поскольку пользовательский интерфейс будет пропорционально распределять пространство для профилировщика).

Вы можете создавать свои собственные константы ширина/высота, если вам нужны специфические базовые номера для масштабирования и т.д.

+0

Thanx за ответ Тео .. но когда я пытаюсь это с пропускной способностью Profiler открытым, размеры этапа являются правильными, только добавив BProfiler сверху .. который не делает влияют на площадь сцены. Он будет отображать высоту высот 400 пикселей, но Sprite, который я использую, будет иметь высоту 300 пикселей, оставляя фоновый цветной диапазон на дне. – elQueFaltaba

0

Абсолютно - Насколько я знаю эта ошибка была исправлена ​​в CS4. Эта ошибка часто меня пугала. Проблема возникает только в среде тестирования, поэтому вы можете быть уверены, что она завершена внутри HTML-страницы, эта проблема исчезает.

Единственное, что я могу предложить, это компиляция клипа, а затем открытие профилировщика полосы пропускания - или обновление флеш-образа, если $ разрешает его.

Вы не одиноки: http://www.google.com/search?hl=en&q=bandwidth+profiler+bug

+0

Thanx для ввода, фасоль. Это происходит со мной на CS4. Как вы говорите, нет проблем, когда swf-файл находится в html, или когда вы открываете его прямо в flash-плеер. Но я думаю, что знаю, что я сделал, чтобы это произошло .. Недавно я загрузил отладочную версию флеш-плеера, и я видел это примерно в это время .. так что это, вероятно, так. – elQueFaltaba

+0

Я не уверен, что отладка имеет к этому какое-либо отношение, я столкнулся с проблемой, так как Flash MX! – Beans

Смежные вопросы