![]() |
Ошибка при использовании Scale9Grid
фла файл
Код AS3:
Код AS3:
ArgumentError: Error #2004: Один из параметров указан неверно. at flash.display:: DisplayObject/set scale9Grid() at Scale9() at v_fla::MainTimeline/frame1() в чем проблема? |
Тут надо определить видимый размер скалируемого объекта и нарисовать вокруг него невидимый прямоугольник, но так что-бы прямоугольник выступал со всех сторон объекта ,хотя-бы на пару пикселей, а потом применять скале9грид с первоначальным размером объекта, так она всегда работает.
Пример http://www.murmadillo.tut.su/m/scale9gridTrue.rar |
http://onenterframe.ru/2009/06/14/smart9slice/ Тут интересный пример
|
Если я правильно понял задумку, то должно быть так.
Код AS3:
|
Помог вот етот вариант
Код AS3:
|
К сожалению, scale9Grid пока работает так, что ей лучше не пользоваться. Для малоразмерных объектов, минимальные размеры которых при масштабировании должны быть менее 10 пикселов, использовать не реально. Как ни подбирай параметры, всё равно иногда будет вылетать. Для таких объектов - только два варианта: либо дробить их на 9 отдельных, либо каждый раз отрисовывать по новой. Первый вариант плох не только раздутым кодом, но ещё и тем, что растёт загрузка проца при при банальном перемещении мыши... Если это кнопки с хитрыми углами, и их на экране с полсотни, если не больше... в общем разрастание числа объектов не есть гуд...
Практически пришлось остановиться на варианте, где при изменении размеров картинка каждый раз отрисовывается заново. А теперь самое интересное - самая большая загрузка проца получилась при разбиении на 9 кусков, и масштабировании нужных по отдельности. Использование .cacheAsBitmap=true влияет, к сожалению, незначительно. Самый шустрый вариант - через scale9Grid, только заставить его работать без глюков так и не получилось. Вариант с .graphics.clear() и отрисовкой заново работает ~ в двое медленнее, чем .scale9Grid, но заметно быстрее, чем перемещение углов и масштабирование кусочков. Ручное разбиение на 9 кусков можно заставить работать быстро, если каждый из них отрисовать в свой битмап, правда этот номер не проходит, если нужно собитать события мыши с объекта хитрой формы, да и слишком громоздко... |
попробуйте http://www.bytearray.org/?p=118
я лично использовал для выплывающих менюшек с твинами - работает шустро. |
| Часовой пояс GMT +4, время: 06:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.