Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.03.2008, 21:44
solo19770701 вне форума Посмотреть профиль Отправить личное сообщение для solo19770701 Найти все сообщения от solo19770701
  № 1  
Ответить с цитированием
solo19770701

Регистрация: Aug 2007
Сообщений: 124
Attention при проигрывании анимации полностью вешается броузер.

Всем доброго времени суток. Сделал я веб сайт в котором в основной клип на определенный уровень в клип грузится внешний клип. Дело в том что при проигрывании этого клипа как говорит клиент браузер замерзает, но дело в том что я проверял в разных браузерах и на разных машинах. У меня работает. Посмотрите, может я что то не то написал. Здесь код, который всем до боли знаком, он здесь раз пять уже мелькал под разным соусом. Может я где то что то не так сделал?
Код:
//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, но он толком сказать не может, потому что не знает где посмотреть как его браузер называется.

Старый 20.03.2008, 04:36
solo19770701 вне форума Посмотреть профиль Отправить личное сообщение для solo19770701 Найти все сообщения от solo19770701
  № 2  
Ответить с цитированием
solo19770701

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

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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