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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.06.2011, 02:50
raltm вне форума Посмотреть профиль Отправить личное сообщение для raltm Найти все сообщения от raltm
  № 1  
Ответить с цитированием
raltm

Регистрация: Sep 2008
Сообщений: 41
По умолчанию ExternalInterface.addCallback в opera

доброго времени суток

пытаюсь вызвать функцию as из javascript.
во флеше выглядит так:
Код AS3:
 
Security.allowDomain('*');
 
ExternalInterface.addCallback("ext_stop", javaScriptCall);
 
public function javaScriptCall():void{
   ...
}

в html так:
Код:
<head>
	<script type="text/javascript">
            	function stopPlayer(id) {
			document.getElementById("player"+id).ext_stop();
	           } 
	</script>
	
</head>
<body>
	<div id="flashContent">
	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="196" height="24" id="player1" align="middle">
		<param name="movie" value="player.swf" />
		<param name="quality" value="high" />
		<param name="bgcolor" value="#ffffff" />
		<param name="play" value="true" />
		<param name="loop" value="true" />
		<param name="wmode" value="window" />
		<param name="scale" value="showall" />
		<param name="menu" value="true" />
		<param name="devicefont" value="false" />
		<param name="salign" value="" />
		<param name="allowScriptAccess" value="always" />
		<!--[if !IE]>-->
		<object type="application/x-shockwave-flash" data="player.swf" width="196" height="24">
			<param name="movie" value="player.swf" />
			<param name="quality" value="high" />
			<param name="bgcolor" value="#ffffff" />
			<param name="play" value="true" />
			<param name="loop" value="true" />
			<param name="wmode" value="window" />
			<param name="scale" value="showall" />
			<param name="menu" value="true" />
			<param name="devicefont" value="false" />
			<param name="salign" value="" />
			<param name="allowScriptAccess" value="always" />
		<!--<![endif]-->
			<a href="http://www.adobe.com/go/getflash">
				<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Загрузить Adobe Flash Player" />
			</a>
		<!--[if !IE]>-->
		</object>
		<!--<![endif]-->
	</object>
	</div>
</body>
</html>
в IE все прекрасно работает.
при вызове stopPlayer(1) срабатывает javaScriptCall().

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

если выводить (через алерт) document.getElementById("player"+i)
в опере выдает [object HTMLObjectElement].
в то же время метода ext_stop() у него не находит, выдает undefined


Последний раз редактировалось dimarik; 17.06.2011 в 11:05.
Старый 17.06.2011, 10:52
Deadly0 вне форума Посмотреть профиль Отправить личное сообщение для Deadly0 Найти все сообщения от Deadly0
  № 2  
Ответить с цитированием
Deadly0

Регистрация: Feb 2011
Сообщений: 13
Перед тем, как обращаться к DOM нужно проверить, что он готов к использованию:

Код:
window.load = function()
{
    window.stopPlayer = function(id)
    {
         document.getElementById("player"+id).ext_stop();
    };
};
Также я бы проверил, что флешка загрузилась тоже.
И флеш вставлять лучше через скрипт swfObject.js — будет меньше проблем.


Последний раз редактировалось Deadly0; 17.06.2011 в 10:55.
Старый 17.06.2011, 11:46
raltm вне форума Посмотреть профиль Отправить личное сообщение для raltm Найти все сообщения от raltm
  № 3  
Ответить с цитированием
raltm

Регистрация: Sep 2008
Сообщений: 41
к моменту вызова все загружено

Старый 17.06.2011, 12:46
Deadly0 вне форума Посмотреть профиль Отправить личное сообщение для Deadly0 Найти все сообщения от Deadly0
  № 4  
Ответить с цитированием
Deadly0

Регистрация: Feb 2011
Сообщений: 13
Значит используйте swfObject.

Старый 17.06.2011, 13:01
raltm вне форума Посмотреть профиль Отправить личное сообщение для raltm Найти все сообщения от raltm
  № 5  
Ответить с цитированием
raltm

Регистрация: Sep 2008
Сообщений: 41
да, этим проблема и решилась. спасибо

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

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

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


 


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


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