Flash: некорректное поведение во всем, кроме Internet Explorer - PullRequest
0 голосов
/ 06 июня 2009

Я полный Flash n00b, но у меня возникли трудности, и я подумал, что опубликовать здесь свой вопрос стоит того, даже если он, вероятно, слишком сложен, чтобы эффективно передавать его здесь.

Мой клиент хотел ввести Flash (черт!), Поэтому я сделал так, чтобы в результате появилось меню со ссылками на другие страницы сайта. Чтобы свести к минимуму раздражающих посетителей, я использую cookie, чтобы определить, был ли пользователь уже на главной странице, и если это так, пропустить всю анимацию и просто показать меню.

Я использую JavaScript-библиотеку ActiveContent для встраивания Flash на мою страницу. Я передаю значение в файл Flash через строку запроса (например, myflash.swf?animation=false) и во Flash при чтении этого значения, используя gotoAndPlay(), чтобы перейти к последнему кадру анимации. Я использую ActionScript 3.

В Internet Explorer 8 и только в IE он работает так, как задумано. К сожалению, другие браузеры не делают этого; все они показывают полную анимацию. Файл cookie работает правильно, но похоже, что Flash полностью игнорирует команду gotoAndPlay.

Поскольку я действительно не знаю, что делаю, я, вероятно, сделал это неправильно. Как я уже сказал, я знаю, что это длинный снимок без публикации кода, но у кого-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 07 июня 2009

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

Было бы намного надежнее взглянуть на SharedObject . SO - это, по сути, файлы cookie, за исключением того, что проигрыватель Flash хранит и извлекает их сам, не заходя в браузер. (Они также не сериализуются, вы можете просто сохранить логическое значение или что-то еще.) Это позволяет избежать любых различий в том, как браузеры обрабатывают встраивания. Это также означает, что даже если зритель проверяет сайт в IE, а затем открывает его в Firefox, вы все равно можете сказать, что он уже видел вступление.

0 голосов
/ 06 июня 2009

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

Если бы вы могли опубликовать вызов ActiveContent, который вы используете для встраивания флэш-памяти, это помогло бы выяснить, есть ли что-то не так с передачей аргумента во флэш-фильм.

...