максимальный размер спрайта в as3? - PullRequest
0 голосов
/ 19 июня 2009

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

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

Ответы [ 5 ]

6 голосов
/ 19 июня 2009

кажется, что 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));
        }
    }   
}

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

Greetz

back2dos

3 голосов
/ 21 февраля 2011

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

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

3 голосов
/ 30 июня 2009

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

0 голосов
/ 22 июня 2009

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

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

0 голосов
/ 20 июня 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...