Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Программное задание маски (http://www.flasher.ru/forum/showthread.php?t=119652)

XeonEx 26.12.2008 14:59

Программное задание маски
 
Вложений: 1
Имеется: битмапа(png с прозрачностью), пример приложен.
Необходимо: наложить маску на битмапу так, чтобы MouseEvent возвращал на непрозрачной части.
Стоит учитывать, что картинка может быть любой.

etc 26.12.2008 16:07

Ну раз необходимо, то отправляйтесь в раздел «Дам денег за работу».

XeonEx 26.12.2008 16:58

Хех. Как тут все меркантильно.

Думаю, что меня немного не так поняли. Просто хотел более ясно поставить задачу.

Да и платить деньги за одну процедуру, которая скорее всего уже ранее даже была описана в мануалах к флешу, по-моему немного жестоко.
К сожалению, пока я это не нашел, и прошу помощи у вас. =)

Psycho Tiger 26.12.2008 17:05

Не меркантильно. Просто Вы говорите не "Подскажите пожалуйста, вот тут не получается, прям вообще не знаю что делать.", а "Вот исходник, вот то что я хочу. Выполняйте."
Кстати, суть вопроса вообще не понял.
Цитата:

MouseEvent возвращал на непрозрачной части.
Возвращался?

XeonEx 26.12.2008 17:18

Цитата:

Сообщение от Psycho Tiger (Сообщение 786609)
Не меркантильно. Просто Вы говорите не "Подскажите пожалуйста, вот тут не получается, прям вообще не знаю что делать.", а "Вот исходник, вот то что я хочу. Выполняйте."


Хм, понял, исправлюсь.
Но исходник ничего не даст.

Код AS3:

public function main():void {
  loader.load(new URLRequest('tile01.png'));
  loader.contentLoaderInfo.addEventListener(Event.COMPLETE, placeTile);
}
private function placeTile(event:Event) {
  var bitmap = new Bitmap(event.target.loader.content);
 
  addChild(bitmap);
  bitmap.addEventListener(MouseEvent.CLICK, changeTile);
}
private function changeTile(event:Event) {...}

Цитата:

Сообщение от Psycho Tiger (Сообщение 786609)
Кстати, суть вопроса вообще не понял.

Возвращался?

Нет, возвращал. MouseEvent как и любой эвент возвращает(return) лисетенру информацию о событии, в данном случае клике.

Мне необходимо, чтобы была этот самый клик не работал на границах изображения(которые прозрачные).

mre 26.12.2008 17:42

To XeonEx:

Попиксельно вычислять прозрачные пиксели, либо ручками вырезать во Flash.

XeonEx 26.12.2008 17:44

To mre:

Хм. Было бы хорошо, если б подсказали чем вычислять и в виде чего задавать как маску.

mre 26.12.2008 18:30

Не так выразился.
Вычислять нужно непрозрачные пиксели.
Чем? У BitmapData есть метод getPixel.
Отрисовывать маску с помощью Graphics.
Других способов не вижу, хотя может и ошибаюсь.

XeonEx 26.12.2008 18:52

To mre:
Спасибо большое)
Правда, для того, чтобы альфа слой узнать надо брать getPixel32.
И кстати, в графиках по-моему нету метода для сбора формы попиксельно. Если только не рисовать маленькими квадратиками, но это по-моему слишком ресурсоемко.

mre 26.12.2008 19:11

Цитата:

Сообщение от XeonEx (Сообщение 786652)
Правда, для того, чтобы альфа слой узнать надо брать getPixel32.

Да, сорри.

Цитата:

Сообщение от XeonEx (Сообщение 786652)
Если только не рисовать маленькими квадратиками, но это по-моему слишком ресурсоемко.

Возможно есть другой способ, но я не знаю. :quiet:


Часовой пояс GMT +4, время: 10:59.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.