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

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

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

Регистрация: Jan 2010
Сообщений: 25
По умолчанию Как правильно от рисовать Клип в BitmapData?

Делаю так

Код AS3:
package
{
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.MouseEvent;
	import flash.filters.GlowFilter;
	import flash.geom.Matrix;
	import flash.geom.Point;
 
	public class main extends Sprite
	{
		private var bmpd1:BitmapData;
		private var bmpd2:BitmapData;
		private var star1:Star;
		private var star2:Star;
		private var ddd1:ddd;
 
		public function main()
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			//создаем две звезды и добавляем их в список отображения
			star1 = new Star(50);
			addChild(star1);
 
 
			var ddd1= new ddd();
			addChild(ddd1 as Sprite);
 
			// создаем два растровых изображения
			bmpd1 = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0);			
			bmpd2 = bmpd1.clone();
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoving);
		}
 
		private function onMouseMoving(event:MouseEvent):void
		{
			// перемещаем star1 в позицию курсора мыши
			star1.x = mouseX;
			star1.y = mouseY;
 
			// очищаем растровые изображения
			bmpd1.fillRect(bmpd1.rect, 0);
			bmpd2.fillRect(bmpd2.rect, 0);
 
 
			bmpd1.draw(star1, new Matrix(1, 0, 0, 1, star1.x, star1.y));
			bmpd2.draw(ddd1 as Sprite, new Matrix(1, 0, 0, 1, 200, 200));
 
			// проверяем столкновение
			if(bmpd1.hitTest(new Point(), 255, bmpd2, new Point(), 255))
			{
				star1.filters = [new GlowFilter()];
				//star2.filters = [new GlowFilter()];
			}
			else
			{
				star1.filters = [];
			}
		}
	}
 
 
}
вот так ругается
ArgumentError: Error #2005: Parameter 0 is of the incorrect type. Should be type IBitmapDrawable.
at flash.display::BitmapData/draw()
at main/onMouseMoving()

Вот проект целиком collisionTest.rar

Старый 17.05.2010, 16:25
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 2  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Ругается потому что твой мега информативный ddd1 равен null.

Старый 17.05.2010, 16:33
warez_men вне форума Посмотреть профиль Отправить личное сообщение для warez_men Найти все сообщения от warez_men
  № 3  
Ответить с цитированием
warez_men

Регистрация: Jan 2010
Сообщений: 25
ну так это ж клип в библиотеке он есть не пойму что ему нужно то еще?

Старый 17.05.2010, 16:36
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 4  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Вот эту строчку
Код AS3:
var ddd1= new ddd();
addChild(ddd1 as Sprite);
Замени на эту
Код AS3:
ddd1 = new ddd();
addChild(ddd1);
P.S.: и да, научись правильно называть переменные, да и придерживаться соглашений по оформлению кода, а то сложные проекты компилироваться не будут.

Старый 17.05.2010, 16:40
warez_men вне форума Посмотреть профиль Отправить личное сообщение для warez_men Найти все сообщения от warez_men
  № 5  
Ответить с цитированием
warez_men

Регистрация: Jan 2010
Сообщений: 25
спасибо! Это тест поэтому от балды назвал переменные но все таки не пойму почему у меня ромб не на рисовался из библиотеки?

Старый 17.05.2010, 16:50
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 6  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Потому что не создал Bitmap и не добавил его на сцену.

Старый 17.05.2010, 16:52
warez_men вне форума Посмотреть профиль Отправить личное сообщение для warez_men Найти все сообщения от warez_men
  № 7  
Ответить с цитированием
warez_men

Регистрация: Jan 2010
Сообщений: 25
а это тогда что?
Код AS3:
bmpd2 = bmpd1.clone();

Старый 17.05.2010, 16:56
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 8  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Это BitmapData.

Старый 17.05.2010, 16:58
warez_men вне форума Посмотреть профиль Отправить личное сообщение для warez_men Найти все сообщения от warez_men
  № 9  
Ответить с цитированием
warez_men

Регистрация: Jan 2010
Сообщений: 25
Волгоградец, че то не фига не пойму а нафига тогда Bitmap? и как мне из клипа его сделать?

Старый 17.05.2010, 17:03
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 10  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
BitmapData - это набор информации о картинке, которую нельзя просто добавить в дисплей лист. Сначала надо создать экземпляр Bitmap, в который надо передать твою BitmapData. А этот Bitmap добавить в дисплей лист. Короче покури хэлп для начала.

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

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

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


 


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


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