![]() |
Буфер обмена во Флеш. Есть ли? И как с ним работать?
Допустим на экране флешки играются куча мувиков, с разными масками и по кнопкам. Но дело не в этом. Мне нужно все это сграбить как одну картинку. По принципу буффера. Есть ли что то подобное в флеш, или как можно подобного добиться?
|
|
FlashRus, эмм " ищи тут"? "что найдеш то твое"? Мнеб для AS2.
|
Если уж говорить о способах хранения данных, то для AS2 вот правильная справка: SharedObject.
Но видимо автора интересует в первую очередь - как собственно "сграбить". Для этого можно воспользоваться методом BitmapData.draw(), применив его для общего контейнера, где все это находится. В дальнейшем полученной битмапой можно закрасить произвольный мувик с помощью attachBitmap. |
mooncar, да точно это оно. Я с ним не сталкивался раньше. Мог бы ктонибудь описать последовательность работы с командой в кратце? создаю new BitmapData добавляю аттачем туда мувки и заливаю одним большим мувиком с помощью draw()? Верно или совсем не так?
|
Совсем не так - срисовываем с контейнера с помощью draw в новосозданную битмапу, а потом ее добавляем, куда надо с помощью attachBitmap.
Вот тут есть пример использования такого подхода. Только не забываем импортировать класс Bitmapdata в проект. |
mooncar,Пасиб огромное, пример про то чего я и пытаюсь добиттся)) А как думаеш такие большие пиксили просто частный случай? Если разрешение хорошее такого не будет?
|
В том примере пиксели видны только при программном увеличении. Если вы растеризуете, а потом добавите куда-то векторный контент, то разницы не заметите.
Ну и еще поэкспериментируйте с параметром, отвечающим за сглаживание в методе draw. |
правильно ли я разобрался?
Код AS1/AS2:
|
Да, суть вы верно уловили.
Название не obj , поскольку это аргумент функции. Просто ее применяете (второй арг. не обязателен): Код AS1/AS2:
Все это приведет к замене векторного контента на растровый. |
mooncar, чтож пока все понятно. Искренне благодарен)
|
Только что обратил внимание на ваши комментарии. В них не совсем все так. Вот как:
Код AS1/AS2:
|
mooncar, спасибо!!)) теперь все понятно. Единственное не получается сместить результат до того как он будет зафиксирован в bd_mc. У меня получается что отрисовка происходит в углу рабочего стола и появляется обрез краев, пробовал смещать все мувы и родителя, но не помогает.
|
Вложений: 1
При отрисовке битмапы из контейнера берется вся графическиая информация справа и вниз от нуля координат, то есть только всё то, что находится на положительных координатах относительно внутреннего нуля координат контейнера. Соответственно все остальное игнорируется (обрезается).
Поэтому при создании мувика следите, чтобы (0, 0) приходился в левый верхний угол, а не в центр (при конвертации объектов в мувик эта точка совпадает с "точкой регистрации"). Вложение 29073 Если уже все сделано, то выделите все объекты внутри контейнера и сдвиньте их вправо и вниз, чтобы (0, 0) осталась в левом верхнем углу. |
mooncar, аха, ну теперь все встало на свои места, у меня просто в муве есть анимация и она временами уходит в отрицательные координаты. Я помню в старом флеше была функция смены центра мува, сейчас не могу найти, хотя я ее может с чем то путаю. и еще у меня в муве статичные слои всегда поверх анимации, это нужно решать как то с помощью getNextHighestDepth()? Спасиб тебе mooncar жаль тут репку набить нельзя)
|
В общем так - все что нужно делать - это правильно распределять все изначально.
Если нужно что-то анимировать всегда поверх статичного контента - значит под всё это рисовать контейнер (пусть даже пустой начально) и его слой в IDE заранее располагать поверх. Можно свопить вверх и программно. То есть узнавая первую свободную глубину с помощью getNextHighestDepth() и далее mc.swapDepths(номер_глубины) или с указанием некой конкретной глубины. |
Возник такой вопрос. Как мне закинуть bd_mc в другой какой то клип и узнать путь к нему? Изменил строчку на var _par = _root.Lup, новосозданный мув переместился, но я не знаю как к нему обратится. По пути var _root.Lup.bd_mc нет реакции.
|
Еще раз. В этой функции ее автор получает, а не задает ссылку на родителя оригинального клипа с помощью выражения:
Код AS1/AS2:
В данной функции автор хочет, чтобы копия была там же, где и оригинал, поэтому используется _par - ссылка на контейнер, содержащий исходный объект. Код AS1/AS2:
Код AS1/AS2:
Код AS1/AS2:
Код AS1/AS2:
|
mooncar, прости)) Я проверял стандартным для себя тестом, перемещением по одной оси. Из за того что запись всегда происходит в одну координату родителя, перемещения не было. Переделал на маску, все заработало. Влюбом случае очень благодарен за таки подробные ответы!))
|
| Часовой пояс GMT +4, время: 21:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.