Форум 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)
-   -   при проигрывании анимации полностью вешается броузер. (http://www.flasher.ru/forum/showthread.php?t=109733)

solo19770701 19.03.2008 21:44

при проигрывании анимации полностью вешается броузер.
 
Всем доброго времени суток. Сделал я веб сайт в котором в основной клип на определенный уровень в клип грузится внешний клип. Дело в том что при проигрывании этого клипа как говорит клиент браузер замерзает, но дело в том что я проверял в разных браузерах и на разных машинах. У меня работает. Посмотрите, может я что то не то написал. Здесь код, который всем до боли знаком, он здесь раз пять уже мелькал под разным соусом. Может я где то что то не так сделал?
Код:

//loading xml
function images_list_load()
{
    var data_xml = new XML();
    data_xml.ignoreWhite = true;
    data_xml.onLoad = function (success)
    {
        if (success)
        {
            if (data_xml.status == 0)
            {
                images_list_parse(data_xml);
            }
        }
    }
    ;
    data_xml.load("port.xml");
}
function images_list_parse(data_xml)
{
    images_xml = data_xml.firstChild;
    highspeed = Math.abs(int(images_xml.attributes.speed));
    lowspeed = int(images_xml.attributes.lowspeed);
    speed = highspeed;
    var temp_arr = new Array();
    var __reg1 = images_xml.firstChild;
    while (__reg1 != undefined)
    // выводит атрибуты xml
        {
        var __reg3 = new Object();
        __reg3.src = __reg1.attributes.src;
        __reg3.link = __reg1.attributes.link;
        __reg3.w = int(__reg1.attributes.width);
        images.push(__reg3);
        __reg1 = __reg1.nextSibling;
    }
    var temp_arr = new Array();
    var __reg2 = 0;
    while (__reg2 < images.length)
    {
        temp_arr.push(images[__reg2]);
        ++__reg2;
    }
    c = 0;
    images = new Array();
    while (temp_arr.length)
    {
        __reg2 = Math.floor(Math.random() * temp_arr.length);
        images.push(temp_arr[__reg2]);
        pos.push(c);
        ++c;
        temp_arr.splice(__reg2, 1);
    }
    var x = 0;
    __reg2 = 0;
    while (__reg2 < pos.length)
    {
        var holder_mc = this.attachMovie("holder_mc", "holder" + __reg2, __reg2);
        var img = images[pos[__reg2]];
        trace("init: " + img.src);
        img.holder_mc = holder_mc;
        holder_mc.ref = img;
        holder_mc._x = x;
                // расстояние между картинками
        x = x + img.w + 40;
        ++__reg2;
    }
    move_start();
    c = 0;
    image_load();
}
function image_load()
{
    if (c >= images.length)
    {
        trace("all images loaded");
        return;
    }
    trace("loading: c=" + c + ", src=" + images[c].src);
    var __reg1 = images[c].holder_mc;
    __reg1.image_mc.loadMovie(images[c].src);
}
function image_loaded(ref)
{
    this;
    var __reg1 = ref.holder_mc;
    if (__reg1.init == undefined)
    {
        __reg1.init = true;
        return;
    }
        // положение по вертикали:
    __reg1.image_mc._y = (680 - __reg1.image_mc._height) / 2;
    __reg1.image_mc.onRollOver = function ()
    {
                // rollover
        rollover_flag = true;
        this._alpha = 80;
    }
    ;
    __reg1.image_mc.onRollOut = function ()
    {
        this._alpha = 100;
    }
    ;
    __reg1.image_mc.onRelease = function ()
    {
                _root.createEmptyMovieClip("viewer_mc", 100);
                _root.viewer_mc._x = 220;
                _root.viewer_mc._y = 114;               
                _root.viewer_mc.loadMovie(this._parent.ref.link);
                //big button action
                bkgndButton = _root.createEmptyMovieClip( "bkgndButton", 90 );
                bkgndButton.beginFill(0x6F6F6F, 100);
                bkgndButton.moveTo( 0, 0 );
                bkgndButton.lineTo( Stage.width, 0 );
                bkgndButton.lineTo( Stage.width, Stage.height );
                bkgndButton.lineTo( 0, Stage.height );
                bkgndButton.lineTo( 0, 0 );
                bkgndButton.endFill();
               
               
                var my_fmt:TextFormat = new TextFormat();
                my_fmt.size = 14;
                my_fmt.font = "Arial-14";
                my_fmt.color = 0xffffff;
                bkgndButton.createTextField("read_txt", 10, 0, 500, Stage.width, 40);
                bkgndButton.read_txt.setNewTextFormat(my_fmt);
                bkgndButton.read_txt.text = "back to the page";
                bkgndButton.read_txt.embedFonts = true;
                bkgndButton.read_txt.antiAliasType = "advanced";
                bkgndButton.read_txt.autoSize = "center";
                trace("font loaded")
               
                bkgndButton.createEmptyMovieClip("showAni_mc", this.getNextHighestDepth());
                bkgndButton.showAni_mc.attachMovie("anim_mc", "animBar_mc", this.getNextHighestDepth());
                bkgndButton.showAni_mc.animBar_mc._x = Stage.width / 2;
                bkgndButton.showAni_mc.animBar_mc._y = Stage.height / 2;
               
                bkgndButton.onPress = function() {
                removeMovieClip(_root.viewer_mc);
                removeMovieClip(this);
                }
    };
    ++c;
    image_load(0);
}
function move_start()
{
    this;
    this.onEnterFrame = function ()
    {
        this;
        if (rollover_flag == undefined)
        {
            speed = lowspeed;
        }
        else
        {
            var dx = this._xmouse / Stage.width;
            dx = dx - 0.5;
            dx = 0 - dx;
            speed = Math.round(dx * highspeed);
        }
        var __reg1 = 0;
        while (__reg1 < pos.length)
        {
            var __reg2 = this["holder" + __reg1];
            __reg2._x = __reg2._x + speed;
            ++__reg1;
        }
        if (speed > 0)
        {
            if (images[pos[0]].holder_mc._x > 0)
            {
                var x2 = images[pos[0]].holder_mc._x - images[pos[pos.length - 1]].w - 40;
                images[pos[pos.length - 1]].holder_mc._x = x2;
                pos.unshift(pos[pos.length - 1]);
                pos.pop();
            }
            return;
        }
                // цикл
        if (images[pos[pos.length - 1]].holder_mc._x + images[pos[pos.length - 1]].w < Stage.width)
        {
            images[pos[0]].holder_mc._x = images[pos[pos.length - 1]].holder_mc._x + images[pos[pos.length - 1]].w + 40;
            pos.push(pos[0]);
            pos.shift();
        }
    }
    ;
    this.onEnterFrame();
}
Stage.scaleMode = "noScale";
Stage.align = "L";
var highspeed = -5;
var lowspeed = -1;
var speed;
var images = new Array();
var pos = new Array();
var c;
images_list_load();

У клиента кажется интернет эксплорер 6, но он толком сказать не может, потому что не знает где посмотреть как его браузер называется.

solo19770701 20.03.2008 04:36

Cнова я. Что то тишина. Странно, столько вопросов по использованию этого вида галереи и у всех все хороше работает. Но не у меня к сожалению. Провел эксперимент, запустил task manager и посмотрел что произойдет, когда я нажимаю кнопки на загрузку той или иной галереи. Ну так вот при загрузке любой галерей нагрузка на проц достигала 50-60% а при повторном нажатии той же кнопки загрузка проца доходила до 90%. Я думаю это вызвало зависание броузера у клиента. У меня машина Пень 4 с процем 2.6Гг. , а у него селерон какой нить или что то типа этого. В связи с этим вопрос, как можно понизить загрузку ресурсов используя этот скрипт. Да еще. В основном мувике я повесил viewer_mc.unloadMovie(), хотя по идеи очистка памяти здесь не причем. В каждой галереи от 17 до 21 картинки размером 79х79пикселей.
Кому интерестно могут зайти сюда и убедится сами www.artgoldbergdesigns.com это не реклама а пример работы этого скрипта в реальном времени.
Надеюсь кто нить поможет хотябы понять причину.
Спасибо.

P.S. если кому интерестно то исходник можно найти постом ниже под в теме под моим ником, там я все приатачи.


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

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