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

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

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

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
при первой загрузке ИЕ считает что Stage.height=97 а при второй из кэша считает что Stage.height=0 - бред какой-то

Пришлось вводить переменную в код вставки so.addVariable("StageHeight", "97") и относительно ее значения высчитывать местоположение холдера по Y

Код AS1/AS2:
_root.PersonsHolder._y=Number(_root.PersonPic_height)/2+Math.abs(_root.StageHeight-Number(_root.PersonPic_height))/2;

заработало корректно в ИЕ

Спасибо Вам "mooncar" за "перст указующий"



P.S. А вот интересно - почему собственно Stage.height у загруженной из кэша ИЕ флэшки равен нулю ?
может просто это свет с луны не туда упал ? ....


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

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

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

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
хм ну хорошо
а к чему же тогда var so = new SWFObject("sqlGet2.swf", "mymovie", "858", "97", "8", "#ffffff") - это же явные размеры ? (но тут глубоко разбираться нужно как работает swfObject для разных брузеров я так думаю)

в таком случае, как вы говорите и исключая (к примеру) то, что размеры приаттаченных мувиков фиксированы, (в моем случае) - может быть, имеет смысл положить один из мувиков сразу на стэйдж где-нибудь вне зоны видимости, и флэшка уже будет знать, как минимум, свою высоту (точнее, высоту стэйджа)
а чтобы уж точно быть уверенным что все
или в первый кадр, допустим, положить этот мувик, а во втором все уже считать и позиционировать.


Последний раз редактировалось djyamato; 04.10.2009 в 00:39.
Старый 25.09.2009, 18:43
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 14  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Попробуйте аттачить в качестве контейнера мувик с размещенным внутри другим, например, прозрачным графическим символом (_alpha = 0).

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

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

Код AS1/AS2:
Object.registerClass("myMC",myMC);
var StartDepth=1;
var NewBTN=_root.attachMovie("myMC","myMC_",StartDepth,{_x:0,_y:0});
 
function myMC():Void {
   myMC.prototype.onLoad = function():Void  {
      var ThisObj=this;
 
      ThisObj.onUnload= function():Void  {
         ....
      }
      ThisObj.onRollOver= function():Void  {
         ....
      }
      ThisObj.onRollOut= function():Void  {
         ....
      }
   }
}


Последний раз редактировалось djyamato; 02.10.2009 в 16:15.
Старый 03.10.2009, 19:04
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 16  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS1/AS2:
Stage.addListener(this);
 
this.onResize = function():Void {
	Stage.removeListener(this);
	// do layout
};
Да, при мгновенной загрузке (ни одного ProgressEvent'а) размер стейджа может быть неопределенным.
Можно попробовать отложить позиционирование на один или несколько кадров;

Код AS1/AS2:
var delayFrames:Number = 10;
 
this.onEnterFrame = function():Void {
	if (delayFrames-- <= 0){
		delete this.onEnterFrame;
		// do layout
	}
};
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 03.10.2009 в 19:10.
Старый 04.10.2009, 00:35
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 17  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
'dimarik', простите, это в тему ТЕМЫ или в ответ господину 'mooncar' ?
Если в тему ТЕМЫ то я аттачу мувики определенного размера состоящие из 2х мувиков - холдера и холста (назову их так). После аттача гружу в холст (приаттаченного мувика) картинку и уменьшаю ее программно чтобы она уместилась в холсте. Когда загрузилась картинка - аттачу следующий в мордоленту. У приаттаченного мувика есть высота отличная от нуля (равная высоте холдера плюс расстояние для увеличения при наведении)


Ну а в конечном итоге - к чему тогда SwfObject размеры по ширине и высоте ? только чтобы зарезервировать на странице для себя место ?

То есть лучше не использовать Stage.height если нет на стейдже ничего изначально ?


Последний раз редактировалось djyamato; 04.10.2009 в 01:27.
Старый 04.10.2009, 12:45
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 18  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от djyamato Посмотреть сообщение
То есть лучше не использовать Stage.height если нет на стейдже ничего изначально ?
Лучше дождаться его правильного значения. Что я и предлагал в предыдущем своем посте.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

Всем спасибо.

Старый 23.11.2009, 02:09
formyka вне форума Посмотреть профиль Отправить личное сообщение для formyka Найти все сообщения от formyka
  № 20  
Ответить с цитированием
formyka

Регистрация: Nov 2009
Сообщений: 9
IE - самый гнусный и тупой браузер современности!!!

Эта проблемма лечиться так в AS3 - в конструкторе Document-класса пишем:

Код AS3:
      // dynamic publishing
      stage.addEventListener(Event.RESIZE, onResize);
      onResize();
 
      function onResize(event:Event = null):void
      {
        if (stage.stageHeight > 0 && stage.stageWidth > 0 && stage.hasEventListener(Event.RESIZE))
        {
          stage.removeEventListener(Event.RESIZE, onResize);
 
          // ваш код
 
        }
      }


Последний раз редактировалось formyka; 23.11.2009 в 13:46.
Создать новую тему Ответ Часовой пояс GMT +4, время: 06:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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