максимальный размер спрайта в as3?

Есть ли верхняя граница размера спрайта в as3 / flash 10?

Я знаю, что bitmapData имеет ограничения ...


person jedierikb    schedule 19.06.2009    source источник


Ответы (5)


кажется, что xScale и yScale не могут превышать 0x8000 ...

сам размер тоже кажется ограниченным ... я нашел предел 0x6666660 ...

вот код:

package {
    import flash.display.*;
    public class Main extends Sprite {
        public function Main():void {   
            var size:Number = 1;

            var s:Shape = new Shape();
            s.graphics.beginFill(0xFF00FF);
            s.graphics.drawRect(0, 0, size, size);

            var old:Number = 0;
            while (s.width > old) {
                old = s.scaleX; 
                s.scaleX *= 1.1;
            }
            trace(s.width.toString(16));

            size = 1;
            s.scaleX = 1;
            while (true) {
                size *= 2;
                s.graphics.clear();
                s.graphics.drawRect(0, 0, size, size);
                if (s.width < 0) break;
            }
            var min:Number = size / 2;
            var max:Number = size;

            while (true) {
                size = (min + max) / 2;
                s.graphics.clear();
                s.graphics.drawRect(0, 0, size, size);
                if (s.width < 0) max = size;
                else 
                    if (max - min < 1) break;
                    else min = size;

            }
            trace(s.width.toString(16));
        }
    }   
}

не нашел никакой документации по этому поводу ... так что вы можете даже получить другие результаты на своей машине ...

привет

back2dos

person back2dos    schedule 19.06.2009

В AIR 1.5 и Flash Player 10 максимальный размер растрового изображения составляет 8 191 пиксель по ширине или высоте, а общее количество пикселей не может превышать 16 777 215 пикселей. (Так, если растровое изображение имеет ширину 8 191 пиксель, оно может быть не более 2048 пикселей.) В Flash Player 9 и более ранних версиях ограничение составляет 2880 пикселей в высоту и 2880 пикселей в ширину.

Взято с http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html

person Pup    schedule 21.02.2011

Сообщение Back2dos кажется очень информативным, но будьте осторожны, если вы кешируете как растровое изображение (DisplayObject.cacheAsBitmap = true, применение BitmapFilter также вызовет это), так как тогда вы будете ограничены лимитом размера растрового изображения flash.

person bgw    schedule 29.06.2009

У меня есть некоторый опыт работы с Flash 6, и это был предел 2880 x 2880 пикселей с растровыми изображениями.

При создании видеоклипов не было проблем с шириной 50000 пикселей и масштабированием, например. 10x тоже не было проблемой.

Так что, я думаю, вы можете быть в безопасности со всем, кроме растровых изображений, что иногда немного неудобно из-за ограничения размера файла.

person Michiel    schedule 20.06.2009

На самом деле есть несколько ограничений, которые я бы посоветовал вам не превышать. Я не уверен на 100%, но в моих тестах вы не можете использовать BitmapData.draw () для любого объекта DisplayObject, превышающего 4079 пикселей по ширине и 4082 пикселей по высоте (на самом деле вы можете, но они не будут отображаться за этими пределами). Однако вы можете нарисовать BitmapDatas большего размера.

Я также обнаружил, что эти значения кажутся «безопасными» границами для ограничивающей рамки любого DisplayObject. DisplayObject больше, чем это, определенно будет довольно глючным ... проблемы рендеринга по краям и интерактивные сбои повсюду очень распространены в таких сценариях.

person Cay    schedule 22.06.2009