Программная маска на AS2, скрывающая содержимое ролика, не предназначенное для отображения
6 марта 2013 | Автор: Дунин Владимир
Было несколько похожих случаев, когда при согласовании flash-баннера с клиентом мне задавали вопросы, смысл которых удавалось понять далеко не сразу. Только спустя несколько минут я начинал понимать, что клиент озадаченно интересуется, почему объекты ролика выходят за границы созданного баннера. И действительно, если просматривать на весь экран файлы .exe, которые я делаю для согласования с клиентами, то становится видно все нутро баннера, не предназначенное для отображения на сайте. На этом скриншоте видно, что я имею ввиду.
Конечно все это мелочи, и клиенту можно объяснить почему так получается, и что на площадке размещения все “лишнее” просто не будет видно, но мне стало интересно решить этот вопрос по-другому. Я просто накидал небольшой скриптик на AS2, который вставил в шаблоны баннеров и забыл о придирках клиентов. Суть скрипта – делать программно маску по размеру баннера, которая скрывает с глаз все “лишнее”. В следующем скриншоте показан результат работы скрипта:
А это сам код:
Stage.scaleMode = "noScale"; var maskerWidth = ширина; var maskerHeight = высота; this.createEmptyMovieClip("maskerMc",this.getNextHighestDepth()); maskerMc.beginFill(0xFF0000); maskerMc.moveTo(0,0); maskerMc.lineTo(maskerWidth,0); maskerMc.lineTo(maskerWidth,maskerHeight); maskerMc.lineTo(0,maskerHeight); maskerMc.lineTo(0,0); maskerMc.endFill(); _root.setMask("maskerMc");
Разбираем по строчкам:
- Запрещаем масштабирование
- Объявляем переменную maskerWidth и присваиваем значение ширины ролика
- Объявляем переменную maskerHeight и присваиваем значение высоты ролика
- Создаем мувиклип maskerMc
- Все строки, начинайющиеся с maskerMc: рисуем в мувиклипе прямоугольник с шириной и высотой, взятой из переменных maskerWidth и maskerHeight
- Делаем мувиклип с прямоугольником маской для _root