![]() |
Изменение параметров flash-объекта средствами JavaScript
Коллеги!
Я так думаю, что мои вопросы тыщу раз обсуждались, но поверьте, полночи я не вылезал из Яндекса и заплевал весь монитор, но ответа на свои вопросы не нашел. Поэтому и обращаюсь к вам. Мои проблемы состоят в следующем. Средствами JavaScript мне необходимо изменять параметры флэшек. Проблема 1. Размеры. document.getElementById(..).width=.., document.getElementById(..).height=.. Равботает, НО. В IE, разумеется, все хорошо, а вот для Нетскейпа пришлось делать финт ушами. Нетскейп не понимает, что NAME в тэге EMBED - это и есть ID, а потому напрочь отказывается изменять размеры таким образом. Специально для Нетскейпа я вставил в EMBED еще один ID, отличный от того, который прописан в OBJECT. Теперь обращаюсь к этому второму ID и все работает. И вот она, смерть моя... Opera, зараза, изменяет размеры флэшек ТОЛЬКО если в тексте документа ВООБЩЕ нет тэга EMBED, в противном случае все мои команды ей глубоко до лампочки. Буду благодарен за комментарии по этой проблеме. Проблема 2. Источник. Мне нужно при определенном событии во флэш-объект загрузить другой SWF-файл. Я делаю так: Для IE - document.getElementById(..).movie=.. Для NN - document.getElementById(..).src=.. Как и в предыдущем случае, NN у меня обращается к флэшику не по NAME, а по отдельному ID (прости мне, господи, все мои прегрешения). И опять смерть моя пришла. Opera молча забивает на все мои пожелания и отказывается менять .movie или .src. Как бы я к ней ни обращался, ни по ID, ни по NAME, ни по второму ID, ей глубоко похрену. Буду благодарен за комментарии по этой проблеме. Проблема 3. Opera, зараза немилая. При загрузке все мои флэшики мертвые, не работает ни одна кнопка. Чтобы их "разбудить", нужно в них ткнуть мышью (была бы возможность, убил бы авторов этого геморроя). Из того, что мне выдал Яндекс, я смутно догадываюсь, что есть способы решения проблемы. Не может ли кто-нибудь дать мне наводку на проверенный и не самый громоздкий вариант? Заранее благодарю за любые комментарии. На всякий случай. IE у меня шестой (а зачем желать другого?). NN у меня - девятка. Opera - тоже девятка. Flash у меня MX, плеер 7. С уважением, Al Bundy. |
1)может дешевле флешку публиковать в 100% размер, а менять размеры дива..
2) тоже может проще переписать innerHTML, чем уговаривать каждый браузер .. 3) не встречал |
Да, разумеется, innerHTML - это путь джедая. И, я почти уверен, так и придется делать в конце концов. Я думал, может, кто-то скажет, где я круто лоханулся в моих кодах. У меня есть подозрение, что два ID на один объект - это перебор.
Неужели нет правильного пути? В два-три оператора? Неужели переписывать содержание дивов? НАРОД! Спецы и гуру (или гуры?)! Неужели все так плохо с оперой? |
На object и embed должны быть разные id.
|
> __etc
Блин.... Спасибо за коммент. Я не знал, простите мне мою некомпетентность. И все-таки остается вопрос с Оперой. Что ж она, гадина, такая кривая? Наверное, ругать ее не надо. Я так понимаю, она изначально проектировалась как легкий софт, не забивающий излишне память. Чего стоят уу инсталляшки на 5 мегов по сравнению с 50-60 для IE и NN. И в этом, наверное, все мои проблемы. Я тут весь из себя придумал крутейший дизайн. А Опера мне говорит, типа, засунь свой дизайн себе в попу, ибо народ ходит в сеть за инфой, а не за твоим, страшно сказать, дизайном. Поэтому половины функций у нас вообще нет, а крутые дизайнеры курят бамбук. Кто нас рассудит? Наверное, в подходе к жизни создателей Оперы есть много правильных моментов. |
IE весит 17, если не ошибась. Нетшкаф, который уже давно умер, весит около 5. Не в этом суть.
Для IE нужно обращаться к object, для всех остальных — к embed. |
Елки с палками.....
Если у меня есть embed, то Опера перестает реагировать на ресайзинг. Если нет embed'a, то перестает реагировать Нетскейп. Загрузку нового SWF в объект Опера вообще не делает, как к ней ни обращайся. Можно было бы подумать, что у меня просто Опера криво установилась. Но где гарантия, что у другого клиента она установилась прямее? А с инсталляшками - может, я и приврал. Но 9 НН, который я ставил вчера, весил около 20 мег. А Нетшкаф правда умер? Я так думал, что он продолжает процветать в новых лицах - огненных лисах, годзиллах и мозиллах всяких. |
http://ultra.samsung.ru/#x820 — вот тут ресайз работает (покликать по разделам) и в Opera, в FF, в Safari и в IE. В нетшкафе не смотрел, ибо он очень уж он древний, да и нет его у меня.
|
Спасибо. Вы возвращаете меня к жизни.
|
Netscape != Mozilla и уж совсем != Firefox. Несмотря на то, что у всех ядро Gecko.
|
.......
У Самсунга width="100%" height="100%" Так и я смог бы. Моя проблема совсем в другом, к сожалению. |
Ничего не мешает вместо 100% × 100% прописать другие размеры.
Если кликать по разделам, то по высоте там уже никак не 100%, 100% будет, если высота контента меньше высоты окна браузера, тогда контент будет расстянут под размер видимой области. Если контент не влезает, то контейнер флеша будет отресайзен под этот размер. |
Я глубоко не ковырял, но я так понимаю, что все изменения размеров у них прописаны в самом SWF'е, и джаваскрипт ничем таким не управляет.
Не буду больше Вас отвлекать. Пойду писать innerHTML. Ненавижу себя за это. |
| Часовой пояс GMT +4, время: 17:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.