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

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

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

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
По умолчанию ошибка 2015 в BitmapData

Приветствую. Подскажите в чем может быть причина.
Код, где срабатывает ошибка:
Код AS3:
trace(cW, cH, uint(col));
var bmdN = new BitmapData(cW, cH, false, uint(col));
var bmN = new Bitmap(bmdN);
newCol.addChild(bmN);
Цитата:
1450 1025 12699088
ArgumentError: Error #2015: Недопустимые данные BitmapData.
at flash.display::BitmapData/ctor()
at flash.display::BitmapData()
at main::Root/setColorToMc()
at main::ColorPicCorner/clickI()
Вроде бы все данные допустимые. Срабатывает спонтанно. После того как сработает может повторяться несколько рас в подряд. Потом опять прекращает.

Старый 09.10.2011, 11:25
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 2  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
cW или cH случайно нуля не равны?
__________________
http://www.chessmax.ru

Старый 09.10.2011, 11:35
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
cW или cH случайно нуля не равны?
Судя по трейсу нет.
Скорее всего ошибка где-то в другом месте

Старый 09.10.2011, 12:27
allanon85 вне форума Посмотреть профиль Отправить личное сообщение для allanon85 Найти все сообщения от allanon85
  № 4  
Ответить с цитированием
allanon85

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
ошибку точно вызывает создание именно этой BitmapData. Локализовал трейсами

Выше в коде еще две BitmapData и ниже одна. сделаны точно так же. на них ошибка еще ни разу не вылазила.

Суть примерно следующая. пользователь тыкает по кнопке и создаются картинки. тыкает по другой кнопке - создаются другие картинки.
Может проблема в том что слишком много создается, и не успевает очищаться?(хотя вроде не так много).

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Покажите весь код? У вас переменные не имеют типа.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 09.10.2011, 13:48
allanon85 вне форума Посмотреть профиль Отправить личное сообщение для allanon85 Найти все сообщения от allanon85
  № 6  
Ответить с цитированием
allanon85

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
Текущий вариант. Немного коряво. Кучу рас дописывал/переписывал.

Код AS3:
//поступающие типы: объект, мовиклип, строка
public function createMc(obj:*,contMc:*,col:*) {
	var startArr = sProp.start.split(',');
	//отрисовываем фон и вставляем
	var bmd = new BitmapData(obj.ldr.content.width, obj.ldr.content.height, true, 0x00ffffff);
	var bm = new Bitmap(bmd);
	bm.bitmapData.draw(obj.ldr.content);
	contMc.addChild(bm);
	//создаем клип с цветом и маской
	var mc = new MovieClip();
	contMc.addChild(mc);
	//создаем маску
	var maskMc = new MovieClip();
	var bmdM = new BitmapData(obj.ldr.content.width, obj.ldr.content.height, true, 0x00ffffff);
	var bmM = new Bitmap(bmdM);
	bmM.bitmapData.draw(obj.ldr.content);
	maskMc.addChild(bmM);
	mc.addChild(maskMc);
	maskMc.cacheAsBitmap = true;
	//создаем цвет
	var colorMc = new MovieClip();
	bmd = new BitmapData(obj.ldr.content.width, obj.ldr.content.height, false, col);
	bm = new Bitmap(bmd);
	colorMc.addChild(bm);
	mc.addChildAt(colorMc,0);			
	colorMc.cacheAsBitmap = true;
	colorMc.mask = maskMc;
	mc.blendMode = BlendMode.MULTIPLY;
 
        //если есть перекрытие то ставим
	if (obj.ldrO!=undefined) {
		bmd = new BitmapData(obj.ldrO.content.width, obj.ldrO.content.height, true, 0x00ffffff);
		bm = new Bitmap(bmd);
		bm.bitmapData.draw(obj.ldrO.content);
		contMc.addChild(bm);
	}
}

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Так и думал, ваш код не похож, на код вначале. Неаккуратный, но ладно. Откуда грузится содержимое ldr?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 09.10.2011, 22:41
allanon85 вне форума Посмотреть профиль Отправить личное сообщение для allanon85 Найти все сообщения от allanon85
  № 8  
Ответить с цитированием
allanon85

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
маюсь с этим куском кода. Как уже не вертел(

ldr - Loader - загружает картинки извне.

в начале cW и cH, это аналоги текущим
Код AS3:
obj.ldr.content.width ; obj.ldr.content.height
т.е. если сделать trace в текущем варианте, будет то же самое - размеры bitmapData получает.
Кусок который показывал в начале соответствует куску который идет после комментария "создаем цвет".


Последний раз редактировалось allanon85; 09.10.2011 в 23:03.
Старый 09.10.2011, 22:59
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 9  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Для начала неплохо бы типизировать переменные.

Старый 10.10.2011, 01:09
allanon85 вне форума Посмотреть профиль Отправить личное сообщение для allanon85 Найти все сообщения от allanon85
  № 10  
Ответить с цитированием
allanon85

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
типизировал - не изменилось.

Установил размеры битмапы числами, а не из содержимого лоадера. Ошибка вроде бы пропала. Минут 20 тестировал, ни разу не вылезла. Хотя вылазила спонтанно по этому не 100%.

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

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

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


 


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


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