Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.10.2007, 00:34
Artureg вне форума Посмотреть профиль Отправить личное сообщение для Artureg Найти все сообщения от Artureg
  № 1  
Ответить с цитированием
Artureg
 
Аватар для Artureg

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
По умолчанию Обрезать битмап.

Подскажите как вырезать из BitmapData области залитые определённым цветом? Не спрятать а именно вырезать. Что бы onMouseOver не срабатывал на вырезанных "дырках". Маски не помогают.

зы. Bitmap берётся из библиотеки и накладывается на Sprite.

Старый 24.10.2007, 00:43
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Создать Shape нужной формы(с дырками) и наложить на hitArea у Sprite'а
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 24.10.2007, 00:57
Artureg вне форума Посмотреть профиль Отправить личное сообщение для Artureg Найти все сообщения от Artureg
  № 3  
Ответить с цитированием
Artureg
 
Аватар для Artureg

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
В таком случае handleMouseOverSprite вообще не срабатывает

Shape на хитАреа спрайта наложить не получается пишет
"1067: Implicit coercion of a value of type flash.display:Shape to an unrelated type flash.display:Sprite."

Если на спрайт не добавлять битмап то всё работает.

Код:
var s:Sprite = new Sprite();			
s.addEventListener(MouseEvent.MOUSE_OVER,handleMouseOverSprite);
s.addEventListener(MouseEvent.MOUSE_OUT,handleMouseOutSprite);		
var bd:Bitmap = new Bitmap(new Pic(tw,th));
					

var sh:Sprite = new Sprite();
sh.graphics.beginFill(0x000000);
sh.graphics.moveTo(0,18);
sh.graphics.lineTo(36,0);
sh.graphics.lineTo(37,0);
sh.graphics.lineTo(73,18);
sh.graphics.lineTo(73,19);
sh.graphics.lineTo(37,37);
sh.graphics.lineTo(36,37);
sh.graphics.lineTo(0,19);
sh.graphics.endFill();

s.addChild(bd);
s.hitArea = sh;
Код:
function handleMouseOverSprite(e:MouseEvent):void{	
	(e.target).alpha = 0.9;
}
function handleMouseOutSprite(e:MouseEvent):void{
	(e.target).alpha = 1;
}


Последний раз редактировалось Artureg; 24.10.2007 в 01:09.
Старый 24.10.2007, 01:04
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Я не знаю каким образом ты форматировал свой код. Но нормальные люди форматируют тэгом CODE, лично я не собираюсь гробить свои глаза смотря на это творчество синим и зеленым.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 24.10.2007, 01:07
Artureg вне форума Посмотреть профиль Отправить личное сообщение для Artureg Найти все сообщения от Artureg
  № 5  
Ответить с цитированием
Artureg
 
Аватар для Artureg

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
Это был тэг PHP. Уже исправил.

Старый 24.10.2007, 01:19
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 6  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
Код:
sh.mouseEnabled = false;

Старый 24.10.2007, 01:20
Artureg вне форума Посмотреть профиль Отправить личное сообщение для Artureg Найти все сообщения от Artureg
  № 7  
Ответить с цитированием
Artureg
 
Аватар для Artureg

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
Всё. Нашёл ошибку у себя в ДНК, забыл добавить спрайт с нарисованной областью к основному спрайту. Всё работает, спасибо. Вопрос закрыт.

Старый 24.10.2007, 01:25
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 8  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Код:
package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.MouseEvent;

	public class HitArea extends Sprite
	{
		public function HitArea()
		{
			addChild(createButton()).addEventListener(MouseEvent.CLICK, trace);
		}
		
		private function createButton():Sprite
		{
			var result:Sprite = new Sprite();
				result.addChild(new Bitmap(new BitmapData(200, 200, true, 0xFFFF6600)));
				result.hitArea = result.addChild(createHitArea()) as Sprite;
				result.buttonMode = result.useHandCursor = true;
				
			return result;
		}
		
		private function createHitArea():Sprite
		{
			var result:Sprite = new Sprite();
				result.graphics.beginFill(0x000000);
				result.graphics.moveTo(0,18);
				result.graphics.lineTo(36,0);
				result.graphics.lineTo(37,0);
				result.graphics.lineTo(73,18);
				result.graphics.lineTo(73,19);
				result.graphics.lineTo(37,37);
				result.graphics.lineTo(36,37);
				result.graphics.lineTo(0,19);
				result.graphics.endFill();
			
			return result;
		}
	}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 24.10.2007, 01:42
Artureg вне форума Посмотреть профиль Отправить личное сообщение для Artureg Найти все сообщения от Artureg
  № 9  
Ответить с цитированием
Artureg
 
Аватар для Artureg

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
Спасибо. Всё работает.

И ещё вопрос. С простым ромбом фишка с хитАреа проходит. А как быть если это сложный битмап со всякими завитушками и его нельзя повторить простыми лайнТу?

Старый 24.10.2007, 02:12
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 10  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Попробуй засунуть битмап в спрайт(копию битмапа) и сделай спрайт хит ареей?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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