can3p: (Default)

Если забивать текст в объект типа textField во флеше, то порой проявляется эффект, когда при выделении текст начинает прокручиваться, при этом визуально пространства тексту хватает. Решением является отказ в постоянном использовании свойства autoSize и добавления небольшого зазора по высоте вручную.

var padding = 2;
textField.autoSize = true;
textField.html = true;
textField.htmlText = yourText;
 
var th = textField._height;
textField.autoSize = false;
textField._height = th + padding

Код для AS2.


Оригинал: http://blog.dpetroff.ru/tech/textfield-scrolling-autosize
can3p: (Default)

Обнаружил, что на странице в ie6 не срабатывает событие onload. Выяснилось, что, когда во флеше вызывается getUrl, любимый броузер считает, что происходит переход на другую страницу в любом случае, даже если из флеша пришла строка вида javascript:doSomething();, и перестает загружать контент и, конечно, не запускает события.

Решением оказалась вставка флеш-объекта непосредственно в событии onLoad.


Оригинал: http://blog.dpetroff.ru/tech/flash-onload-geturl
can3p: (Default)

Во flash существует возможность масштабирования клипов, причем независимо по осям. За это отвечают свойства _xscale и _yscale. Значения этих параметров отвечают масштабированию в процентах от оригинального размера. Но, к сожалению, в документации неясно написано, как же все-таки влияют эти свойства на поведения клипов.

На самом деле, фактически (кроме внешнего вида) меняются только свойства _width и _height клипа. Фактически, просто получается клип другого размера. Если был клип размером 100×200, и ставим масштабирование _xscale = _yscale = 200, то на вхыоде получаем клип размерами 200×400. Больше с клипом не происходит ничего, и это важно. Координаты клипа не меняются. Зная эти нюансы масштабирование компонентов представляется совсем в другом свете и трудностей больше никаких представлять не может.

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

Ролик: swf , fla


Оригинал: http://blog.dpetroff.ru/tech/flash_movieclip_scale
can3p: (Default)

Среда разработки Flash MX 2004 имеет один чудесный баг, после повторяющихся проявлений которого хочется расстрелять разработчиков из гранатамета, или, еще лучше привязать их к столу и капать водой им на лоб, пока они не сойдут с ума.

Все дело в том, что если есть fla-файл, использующий внешний AS-файл, в котором определен класс, то при компиляции этот класс каким-то образом кешируется, и при следующей компиляции кеш очищается не всегда. В результате после определенного изменения при попытке компиляции среда смотрит, что в кеше лежит измененный класс, но немного другой, и гордо выплевывает фразу вида “**Error** С:\path\to\class\YourClass.as: Line 2: The name of this class, ‘YourClass’, conflicts with the name of another class that was loaded, ‘YourClass’.
{”.

Самое ужасное в этой ошибке, что в ее появлении пользователь не виноват, и никаких причинно следственных связей достоверно установить не удалось, хотя есть предположения.

  1. Удалить кеш объектов из каталога L:\Documents and Settings\%USER%\Local Settings\Application Data\MacromediaFlash MX 2004\en\Configuration\Classes\aso. Как показал опыт, не помогает.
  2. Сделать так, чтобы дата последнего изменения fla-файла была позже, чем дата изменения as-файла. Не помогает.
  3. Некоторые колдуют, запуская проверку синтаксиса по Ctrl-T. Опять таки, не было выявлено явной причинно-следственной связи.

Как показала практика, ошибка просто исчезает сама по себе, через некоторое время, скажем 5 минут. Вот такая китайская пытка.

UPDATE: Решилась проблема следующим путем. Оказалось, что проблема отчасти не только программы. Файлы проекта хранились на расшаренном диске сервера, а на сервере часы шли немного вперед, как раз на пару минут. В первый раз все компилировалось нормально, а после первого сохранения, сервер проставлял на файле дату немного в будущем. Из-за этого происходила ошибка, и компилятор не удалял класс из кеша при перекомпиляции. После того, как на рабочей машине часы были переставлены вперед, проблема исчезла.


Оригинал: http://blog.dpetroff.ru/tech/flash-mx-2004-compilation-error
can3p: (Default)

Самое интригующее при задании полноэкранного режима во flex3 кроме всего прочего - это научиться отлавливать событие FullScreenEvent.FULL_SCREEN.  Нашел таки место, где нужно вешать событие, чтобы точно отрабатывало.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
  <mx:initialize><![CDATA[
    systemManager.stage.addEventListener(
      FullScreenEvent.FULL_SCREEN,
      onToggleFullscreen
    );
  ]]></mx:initialize>
</mx:Application>

Если вы сразу нашли этот пост, то поздравляю! вы только что сэкономили до 40 минут рабочего времени.


Оригинал: http://blog.dpetroff.ru/tech/fullscreen-in-flex-3

Profile

can3p: (Default)
can3p

April 2017

S M T W T F S
      1
2 3 45678
9101112131415
16171819202122
23 242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 20th, 2017 07:40 am
Powered by Dreamwidth Studios