проблема с большой загрузкой изображения - PullRequest
2 голосов
/ 24 ноября 2010

Я устал загружать изображение из URL-адреса ниже, это мой пример кода, когда я пытался загрузить большое изображение, которое превышает 8191 пикселей в ширину или высоту, Event.COMPLETE не отправляется.10 Ограничение BitmapData, поэтому мы не можем загрузить изображение, превышающее этот предел в 8191 пиксель? Есть ли обходной путь для этого или какой-либо другой метод, который вы предлагаете при этом?

1 Ответ

3 голосов
/ 24 ноября 2010

Я бы порекомендовал вам разделить изображения.Если вам нужен Flash для обработки изображений как одного (перемещение, масштабирование), я бы написал класс держателя, который добавляет фрагменты изображения как дочерние элементы самого себя.

Я добавил некоторый код и ссылку на тест ниже,Посмотрите на код в действии здесь .(дождитесь загрузки SWF-файла).

// TestClass

package
{
    import com.kazumakzak.display.TileImage;

    import flash.display.Sprite;
    import flash.events.Event;

    public class TestBigImage extends Sprite
    {

        [Embed(source="assets/piece.png")]
        private var imageClass : Class;

        private var _image : TileImage;
        private var _counter : Number = 0;

        public function TestBigImage()
        {
            // create image with tile size 640x480
            _image = new TileImage(640, 480);

            // add tiles at positions 
            _image.addTile(new imageClass(), 1, 1);
            _image.addTile(new imageClass(), 1, 2);
            _image.addTile(new imageClass(), 2, 1);
            _image.addTile(new imageClass(), 2, 2);
            _image.addTile(new imageClass(), 3, 1);
            _image.addTile(new imageClass(), 3, 2);

            // add to display list
            addChild(_image);


            addEventListener(Event.ENTER_FRAME, render);
        }

        private function render(event : Event) : void
        {
            _counter += 0.05;
            _image.x = -640 + Math.cos(_counter) * 640
        }
    }
}

// TileImage.as

package com.kazumakzak.display
{
    import flash.display.Bitmap;
    import flash.display.Sprite;

    public class TileImage extends Sprite
    {

        private var _tileWidth : int;
        private var _tileHeight : int;

        public function TileImage(tileWidth : int, tileHeight : Number)
        {
            _tileWidth = tileWidth;
            _tileHeight = tileHeight;
        }

        public function addTile(source : Bitmap, tileX : int, tileY : int) : void
        {
            source.x = (tileX-1) * _tileWidth;
            source.y = (tileY-1) * _tileHeight;

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