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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.01.2010, 18:34
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 1  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
По умолчанию ExternalInterface.addCallback и visible:hidden - проблема.

Столкнулся с тем, если при использовании ExternalInterface.addCallback блок с флешкой имеет атрибут hidden, то флешка не может зарегистрировать тот метод для JS, который JS должна будет использовать при обращении к флешке.
То есть вот здесь
Код:
addCallback(methodName:String, instance:Object, method:Function)
имя метода methodName остается для Java Script неизвестным.
Снимаем у div'а атрибут hidden, в котором сидит флешка, тогда все в порядке.
Кто-нибудь сталкивался, может помочь? Как держать флешку до поры невидимой, но при этом использовать ExternalInterface.addCallback?

PS. Во всех браузерах.


Последний раз редактировалось mooncar; 15.01.2010 в 18:36.
Старый 15.01.2010, 19:13
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
А можно див этот сместить просто за пределы окна браузера вместо hidden?

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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Может обернуть флэшку в еще один див, и уже внешнему visible:hidden поставить?
Или display:none попробовать?
Или, не знаю, сработает ли, z-index отрицательный поставить.
__________________
hauts.ru

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
А можно див этот сместить просто за пределы окна браузера вместо hidden?
Да, сейчас проверил - только так получается. И причем метод регистрируется только если
Код:
right:1000px;
top:1000px;	
position:absolute;
а вот
Код:
right:-1000px;
top:-1000px;	
position:absolute;
опять та же история.
Спасибо.

Добавлено через 1 минуту
Цитата:
Сообщение от Hauts Посмотреть сообщение
Может обернуть флэшку в еще один див, и уже внешнему visible:hidden поставить?
Или display:none попробовать?
Или, не знаю, сработает ли, z-index отрицательный поставить.
Все это испробовано и обертка дополнительная, и display:none - результат тот же. А z вообще никак не влияет.
В общем, помогло только смещение далеко-далеко направо и вниз...


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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Интересная особенность, надо будет запомнить.
__________________
hauts.ru

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

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

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

Так вот новости какие - все браузеры умнички, а дебил FF после переназначения класса, который выводит флешку в область видимости что делает: заново ее загружает! Что приводит мало к тому, что опять идет ее подгрузка, а самое скверное, что зарегистрированный метод уже не работает. Но ошибок не возникает при этом.
Видимо сначала, когда флешка загрузилась за экраном, она отыграла код, который зарегистрировал метод вызова для JS. После подгрузки и перерисовки флешки уже в рабочей зоне метод как бы существует, ошибки при вызове не происходит (Консоль ошибок FF пустая), но метод не срабаьывает, то есть действия, на него прописанные во флешке не происходят.

В других браузерах все пашет на ура - даже в IE 6 и Opera. Особенно Опера порадовала - в ней все работает без бубна, без всяких IE-фиксов и expression'ов.

Видимо, придется что-то думать дальше.


Последний раз редактировалось mooncar; 15.01.2010 в 21:53.
Старый 15.01.2010, 22:05
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 7  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Можно попробовать так: есть три функции:
1. Спрятана ли флэшка (true / false) - эту функцию флэшка вызывает при загрузке.
2. Показать флэшку.
3. Запустить флэшку.

Когда флэшка не в ФФ:
1. Спрятана? JS возвращает true
2. Показывается флэшка
3. Запускается

Когда в ФФ:
1. Спрятана? JS возвращает true
2. Показывается флэшка
3. Флэшка перезагружается.
4. Флэшка заново спрашивает, спрятана ли она, и, либо не получает ответ, что значит, что нужно ее запускать, либо получает false (не спрятана), что тоже значит, что ее нужно запускать.

Комбинаторика.

"Спрятана ли флэшка" можно прировнять к "Нужно ли флэшке играть"
__________________
hauts.ru


Последний раз редактировалось Hauts; 15.01.2010 в 22:10.
Создать новую тему Ответ Часовой пояс GMT +4, время: 09:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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