Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ошибка 2015 в BitmapData (http://www.flasher.ru/forum/showthread.php?t=169640)

allanon85 09.10.2011 10:02

ошибка 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()
Вроде бы все данные допустимые. Срабатывает спонтанно. После того как сработает может повторяться несколько рас в подряд. Потом опять прекращает.

Inet_PC 09.10.2011 11:25

cW или cH случайно нуля не равны?

goodguy 09.10.2011 11:35

Цитата:

cW или cH случайно нуля не равны?
Судя по трейсу нет.
Скорее всего ошибка где-то в другом месте

allanon85 09.10.2011 12:27

ошибку точно вызывает создание именно этой BitmapData. Локализовал трейсами

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

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

GBee 09.10.2011 13:40

Покажите весь код? У вас переменные не имеют типа.

allanon85 09.10.2011 13:48

Текущий вариант. Немного коряво. Кучу рас дописывал/переписывал.

Код 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);
        }
}


GBee 09.10.2011 19:08

Так и думал, ваш код не похож, на код вначале. Неаккуратный, но ладно. Откуда грузится содержимое ldr?

allanon85 09.10.2011 22:41

маюсь с этим куском кода. Как уже не вертел(

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

в начале cW и cH, это аналоги текущим
Код AS3:

obj.ldr.content.width ; obj.ldr.content.height

т.е. если сделать trace в текущем варианте, будет то же самое - размеры bitmapData получает.
Кусок который показывал в начале соответствует куску который идет после комментария "создаем цвет".

goodguy 09.10.2011 22:59

Для начала неплохо бы типизировать переменные.

allanon85 10.10.2011 01:09

типизировал - не изменилось.

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


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

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