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

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

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

Регистрация: Aug 2012
Сообщений: 77
Question Перенос shape в bitmapdata?

Доброго времени суток!

Прошу помочь разобраться с проблемкой:
Хочу нарисовать на экземпляре Shape'а произвольные линии, далее эти линии загнать в BitmapData и выполнить поиск по цвету с определением координат. Привожу ниже состряпаный мною код. Линии рисует, но вот поиск не осуществляется... Думаю проблема в моем не умении загонять данные Shape'а в BitmapData.

Код AS3:
        import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.MovieClip;
	import flash.display.Shape;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Point;
 
	public class PaintBall extends MovieClip
	{
		var child:Shape = new Shape();		
		var bmd:BitmapData = new BitmapData (200, 200);
 
		public function PaintBall()
		{	
			addChild(child);
			stage.addEventListener(MouseEvent.MOUSE_DOWN, onMD);
			stage.addEventListener(MouseEvent.MOUSE_UP, onMU);	
		}
 
		public function onMD (e:MouseEvent):void{
			var to_x = e.localX;
			var to_y = e.localY;
			child.graphics.lineStyle(2, 0x000000, 100, true, "normal", "none");
			child.graphics.moveTo(to_x,to_y)
			stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}
 
		function enterFrameHandler(event:Event):void {
			var m_x:Number = stage.mouseX;
			var m_y:Number = stage.mouseY;
			if((m_x>5 && m_x<200) && (m_y>5 && m_y<200)){
				child.graphics.lineTo(child.mouseX, child.mouseY);
			}
		}
		function onMU(event:MouseEvent):void {
			stage.removeEventListener("enterFrame", enterFrameHandler);
 
			bmd.draw(child);
			var coords:Point = null;
 
			for (var i:uint; i<bm.height; i++){
				for (var j:uint; j<bm.width; j++){
 
					if (bmd.getPixel(i,j) == 0x000000){
						coords = new Point(i, j);
						trace('черный цвет найден по адресу:' + coords)
					}
				}
			}
		}
        }
}

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

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

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


 


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


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