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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.09.2009, 17:52
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 1  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
По умолчанию InternetExplorer неправ. позиционирование после обновл. страницы

Здравствуйте
Вот какого рода проблема
Есть прокручивалка картинок ( МОРДОЛЕНТА ) http://divisionby0.org/web_Portfolio/walejo/ala_mamba/
почти все параметры вынесены из флэшки и можно выставить размер картинок, длину флэшки, высоту, количество показываемых картинок и.т.д.
При наведении на картинку она немного увеличивается - так что по высоте флэшка должна быть чуть выше чем картинка.

При обновлении страницы в Опере и FF все работает нормально (хоть миллион раз обновить страницу) - картинки подгружаемые в контейнер (MovieClip) позиционируются по Y там где нужно. А вот в ИЕ при обновлении страницы - почти наполовину своей высоты ниже позиционируются картинки загруженные, а может быть это контейнер(MovieClip) позиционируется неправильно (если обновлять страницу и дальше, то "опускания" картинок больше не происходит).
То есть, при обновлении страницы в ИЕ картинки как бы "падают" ниже, а при первой загрузке - правильно позиционируются.


Флэшка встроена swfObject-ом
Вот код вставки флэшки в страницу:

PHP код:
<div id="flash"><p align="right"><br />
      &
#210;ðåáóåòñÿ Adobe Flash Player 8.0</p>
    
<p align="center"><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&amp;promoid=BIOW" target="_blank">Download Adobe Flash</a></p>
    </
div>
    <
script type="text/javascript" language="javascript">
        var 
so = new SWFObject("sqlGet2.swf""mymovie""858""97""8""#ffffff");
            
so.addParam("menu""false");
            
so.addParam("scale""noscale");
            
so.addParam("allowFullScreen""false");
            
so.addVariable("AvatarsFolder""avatars");
            
so.addVariable("AnimSpd""4");
            
so.addVariable("RightRewindSpeed""7");
            
so.addVariable("notSelectedPersonsAlpha""60");
            
so.addVariable("PersonPic_width""60");
            
so.addVariable("PersonPic_height""88");
            
so.addVariable("PersonPic_Zazor""6");
            
so.addVariable("totalPersonsVisible""13");
            
so.addVariable("CodePage""true");
            
so.addVariable("linkPage""_blank");
            
so.addVariable("sqlGetScript""getDATA.php");

            
so.write("flash");
    
</script> 

во флэшке:
Код AS1/AS2:
Stage.scaleMode="noScale";
Stage.align ="TL";
Object.registerClass("PersonObj",PersonObj); // мувик в библиотеке
var sqlGetter=new LoadVars();
...
_root.createEmptyMovieClip("PersonsHolder",_root.getNextHighestDepth());
_root.PersonsHolder._x=0;
_root.PersonsHolder._y=Number(_root.PersonPic_height)/2+Math.abs(Stage.height-Number(_root.PersonPic_height))/2; //  это контейнер для подгруженных фото
...
sqlGetter.onLoad=function(){
	Persons_array=this.DB_data.split("<>"); // ответ скрипта читающего из базы MySQL
	Persons_array.pop();
	for(i=0;i<Persons_array.length;i++){
		var PersCont=_root.PersonsHolder.createEmptyMovieClip("PersonCont_"+i,_root.PersonsHolder.getNextHighestDepth());
		var PERSON=PersCont.attachMovie("PersonObj","PersonObj",PersCont.getNextHighestDepth());
		PersCont._width=_root.PersonPic_width;
		PersCont._height=_root.PersonPic_height;
		PersCont._x=i*(PersCont._width+Zazor)+(PersCont._width+Zazor)/2;
		PersCont._y=0;
 
		PERSON.dataArray=new Array();
		PERSON.nmbr=i;
		PERSON.parent=PersCont;
		PERSON.dataArray=Persons_array[i].split(",");
		PersonsObjectsArray.push(PERSON);
		PERSON.dataArray.pop();
		UserPicture_MCL.loadClip(PERSON.dataArray[PERSON.dataArray.length-2],PERSON.hlst);
	}
	if(Persons_array.length>Number(_root.totalPersonsVisible)){
		AnimationRightRewindSpeedRazn=Persons_array.length-Number(_root.totalPersonsVisible);
		PersonsHolder._x=(-1)*AnimationRightRewindSpeedRazn*(Number(_root.PersonPic_width)+Zazor);
		_root.AnimationRightRewindSpeed_Interval=setInterval(AnimationRightRewind,AnimationRightRewindSpeed);
		LoadArea_x=PersonsHolder._x;
	}
}
 
 
 
sqlGetter.load(_root.sqlGetScript+"?"+Math.random(115));
Изображения
   


Последний раз редактировалось djyamato; 24.09.2009 в 19:03.
Старый 24.09.2009, 18:45
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Была похожая проблема...
Код не совсем ясен.
Вот это как понимать?
Код AS1/AS2:
"PersonCont_"+i
Как у вас организован цикл? У вас onLoad несколько раз вызывается в цикле?
Покажите побольше. Stage тут не нужен, он не при чем.
PersonObj в аттаче как меняется?

Старый 24.09.2009, 18:57
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 3  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
Цитата:
Сообщение от mooncar Посмотреть сообщение
Была похожая проблема...
Код не совсем ясен.
Вот это как понимать?
Код AS1/AS2:
"PersonCont_"+i
Как у вас организован цикл? У вас onLoad несколько раз вызывается в цикле?
Покажите побольше. Stage тут не нужен, он не при чем.
PersonObj в аттаче как меняется?
"PersonCont_"+i это имена - то есть если в цикле то: PersonCont_0 PersonCont_1 PersonCont_2 итд


Код дополнил - взгляните будьте добры

Старый 24.09.2009, 19:31
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Сделайте высоту сцены побольше (повыше), сделайте рамочку для PersonsHolder и для индивидуальных контейнеров, а то все белое. Тогда можно будет локализовать проявление проблемы и думать дальше.
Понять можно будет - съезжает ли сам общий холдер, или ниже делаются контейнеры с картинками или даже сами картинки внутри индивидуальных контейнеров, хотя это вряд ли.

Добавлено через 6 минут
Все таки что-то тут может быть с самой Stage.
Вот тут у вас задается положение общего холдера:
Код AS1/AS2:
root.PersonsHolder._y=Number(_root.PersonPic_height)/2+Math.abs(Stage.height-Number(_root.PersonPic_height))/2;
Может его жестко задать?


Последний раз редактировалось mooncar; 24.09.2009 в 19:33.
Старый 24.09.2009, 19:43
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 5  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
Спасибо за советы - помучаю флэшку с рамочками
Попробую жестко НО проблема эта в ИЕ выявляется не при первой загрузке а при обновлении страницы - при первой загрузке все позиционируется правильно

Старый 24.09.2009, 19:52
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от djyamato Посмотреть сообщение
а при обновлении страницы - при первой загрузке все позиционируется правильно
Это-то я заметил. Возможно, дело в разнице работы кэша IE и остальных браузеров? То есть при повторной загрузке, например, swf-ка берется уже из кэша. Попробуйте добавить при публикации к swf рандомную переменную, дабы обойти кэш.

Старый 24.09.2009, 19:56
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 7  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
Цитата:
Сообщение от mooncar Посмотреть сообщение
Это-то я заметил. Возможно, дело в разнице работы кэша IE и остальных браузеров? То есть при повторной загрузке, например, swf-ка берется уже из кэша. Попробуйте добавить при публикации к swf рандомную переменную, дабы обойти кэш.
а вот этого я не умею - подскажите пожалуйста как добавить рандомную переменную при публикации

Старый 24.09.2009, 20:11
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если у вас страница php:
Код:
var so = new SWFObject("sqlGet2.swf<?php echo('?'.rand(1, 200) )?>", "mymovie", .....
Не уверен, сработает ли для SWFObject, и кроме того если страница у вас не php, то там у вас JS-скрипт, вместо <?php echo('?'.rand(1, 200) )?> для генерации нужно использовать JS-вставку, я вам не подскажу, с JS не очень дружу.

Добавлено через 2 минуты
Но вообще, конечно, кэш кэшем, проблемы быть не должно такой.


Последний раз редактировалось mooncar; 24.09.2009 в 20:15.
Старый 24.09.2009, 21:35
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 9  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
ясненько спасибо
буду экспериментировать
как сделаю опишу как я этот досадный глюк поборол

Старый 25.09.2009, 09:33
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Да, проблема проявляется, когда IE после рефреша берет ролик из кэша. Если открыть страницу, загрузить флешку, потом зайти в "настройки обозревателя", нажать "удалить файлы" и обновить страницу, все в порядке.
Можно форсировать некэширование, но правильнее все же разобраться, почему так ведет себя флеш.

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

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

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


 


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


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