Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загрузка картинок с последующим просмотром (http://www.flasher.ru/forum/showthread.php?t=172600)

AlexMik 13.12.2011 18:32

Загрузка картинок с последующим просмотром
 
Суть проблемы в следующем, господа:

Загружаю картинки (PNG, 23 штуки по 3Мб каждая)

Код AS3:

var frame_show_picture_ind=true;
var frame_viewing_picture=0;
var frame_images_gallery:Array=new Array();
var frame_view_images_gallery:Array=new Array();
 
var position_x=-493;
var        position_y=-80;
var backing_viewing_picture=0;
 
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("level_1_frames/3d_full_kotiol.xml"));
function LoadXML(event:Event):void
{
        xmlData = new XML(event.target.data);
        var imgList:XMLList = xmlData.img;
        for each (var imgEl:XML in imgList)
        {
                frame_images_gallery.push(imgEl);
        };
        frame_View_Gallery(frame_images_gallery);
};
 
var loader: Array = new Array();
 
function frame_View_Gallery(frame_images_gallery:Array)
{
                var i = frame_viewing_picture;
                loader[i] = new Loader();
                var request:URLRequest = new URLRequest(frame_images_gallery[i]);
                loader[i].contentLoaderInfo.addEventListener(Event.COMPLETE, Load_OK);
                loader[i].load(request);
};
 
function Load_OK(e:Event)
{
        frame_view_images_gallery[frame_viewing_picture]=LoaderInfo(e.target).content;
        addChild(LoaderInfo(e.target).content);
        LoaderInfo(e.target).content.x=position_x;
        LoaderInfo(e.target).content.y=position_y;
        LoaderInfo(e.target).content.scaleX=0.49;
        LoaderInfo(e.target).content.scaleY=0.49;
        LoaderInfo(e.target).content.visible=false;
        if (frame_viewing_picture<frame_images_gallery.length-1)
        {
                frame_viewing_picture+=1;
                frame_View_Gallery(frame_images_gallery);
        }else
        {
                frame_view_images_gallery[0].visible=true;
                frame_viewing_picture=0;
        };
};

Затем кнопками посдедовательно меняю их.
Так вот - при первом проходе подтормаживания. Потом все быстро и плавно.
В чем дело?
Необходимо чтобы картинки сразу быстро менялись.

Genzo 13.12.2011 18:35

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

GBee 13.12.2011 19:28

Цитата:

Код AS3:

frame_view_images_gallery[frame_viewing_picture]=LoaderInfo(e.target).content;
        addChild(LoaderInfo(e.target).content);
        LoaderInfo(e.target).content.x=position_x;
        LoaderInfo(e.target).content.y=position_y;
        LoaderInfo(e.target).content.scaleX=0.49;
        LoaderInfo(e.target).content.scaleY=0.49;
        LoaderInfo(e.target).content.visible=false;


Скажите, что это неоптимизированный код, хотя убил бы все равно.

3 метра - много, прелоадер бы не помешал. А так Genzo прав.

AlexMik 14.12.2011 11:12

Ладно. Изменил PNG на JPG и, соответственно, размер уменьшился с 3Мб до 350кБ.
Тормоза исчезли. Пусть так и будет. Хотя до причины не докопался.


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

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