Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   bitmapdata draw есть ли какойто таймаут который нада выдержитвать перед использование (http://www.flasher.ru/forum/showthread.php?t=114699)

darksranger 06.08.2008 16:02

bitmapdata draw есть ли какойто таймаут который нада выдержитвать перед использование
 
вобщем, в заголовке в двух словах, не знаю как описать, привожу код
Код:

_global.loadImage3 = function(mc, nameImage) {

        mc.createEmptyMovieClip("jpg", mc.getNextHighestDepth());
        mc.jpg.loadMovie(nameImage);
        mc.onEnterFrame = function() {
                var l = mc.jpg.getBytesLoaded();
                var t = mc.jpg.getBytesTotal();
                if (l && t) {
                        if (l == t) {
                                index++
                                _root.vivod = index+","+peremen1
                                if (index == peremen1) {
                                index = 0
                                procBitmapa();
                                }
                        }
                        delete mc.onEnterFrame;
                }
        };
};
procBitmapa = function () {
whereBitmapa = _root
for (i=1; i<=peremen1; i++) {
                      whereBitmapa["myBitmapData"+i] = new BitmapData(510, 306, false, 0);
                      whereBitmapa["b"+i].b.attachBitmap( whereBitmapa["myBitmapData"+i],whereBitmapa["b"+i].b.getNextHighestDepth(), "auto", true);
                      whereBitmapa["myBitmapData"+i].draw(allphoto["photoGal"+i]);
                      whereBitmapa["b"+i].b._x = -10;
                      whereBitmapa["b"+i].b._height = 67;
                      whereBitmapa["b"+i].b._width = 112;
                      whereBitmapa["myBitmapData"+i].applyFilter(whereBitmapa["myBitmapData"+i],  whereBitmapa["myBitmapData"+i].rectangle, new Point(0, 0), filter);
}
proc2()
}

proc2 это процедура, отображения уже готовых смалок
Смысл тут такой:
Грузим фотки, проверяем загруюенны ли все которые нужны, в peremen1 лежит нужное количество, далее если загруженны все, переходим в процедуру битмапирования, после окончания выводим результат, токо вот незадача, переодически, ( закономерность пока не получилось получить ) заместо смалок, черные квадраты ( тоесть не было скопированно, то что нада ) хотя фотография загруженна ( о чем нам сообщает, нажатие на кнопку, уже в результатах )

что я делаю не так ?

Wolsh 06.08.2008 18:31

забавный у Вас onEnterFrame - как только появятся данные (l и t) - он нафиг удаляется и всё)))
Чему ж удивляться? Наверно delete mc.onEnterFrame; должен стоять в блоке if (l == t){} ?

darksranger 06.08.2008 18:41

гг :) ну короче совсем я заработался ;)
спасибо !
вывод один, пора выходной сделать ))))

UPD
хм, всеравно переодически вываливается черный квадрат оО

Alex_beginner 06.08.2008 22:12

Хех!:) Вот так Малевич и воссоздал Величайшее творение века - картину "Черный квадрат".:D (шутка)
По делу - еще три замечания к Вашему коду:
1.
Цитата:

Код:

whereBitmapa["b"+i].b.attachBitmap( whereBitmapa["myBitmapData"+i],whereBitmapa["b"+i].b.getNextHighestDepth(), "auto", true);

Зачем такие "cуровые" ссылки - создавали бы экземпляры битмапдата и впихивали ссылки на них в массив, читабельнее код бы был.
2. В методе draw вторым параметром обязательно нужно указать экземпляр класса Matrix, хотя бы матрицу идентичности, т.е.

Код:

import flash.geom.Matrix
BMP.draw(CLIP,new Matrix());

3. В последней строчке не ясно какой фильтр применяется к битмапе?

darksranger 06.08.2008 22:55

привет алекс :)
итак whereBitmapa, было созданно, так как было подозрение на то что битмапа перетирает битмапу :)
далее, матрицу создал, сразу после поправки wolsh, всеравно переодически квадраты выпдают :(

фильтр ConvolutionFilter, для сглаживания результата :)


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

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