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

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

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

Регистрация: Feb 2014
Сообщений: 7
По умолчанию Не могу отправить данные с Javascript во Flash

Код AS3:
import flash.external.ExternalInterface;
function to_flash()
{
	if( ExternalInterface.available )
		ExternalInterface.addCallback("send",from_js);
 
}
function from_js( value:String ):void
{
		lbl.text = value;
}
to_flash();
Javascript код
Код:
function to_flash( value )
{
    var flash = navigator.appName.indexOf( "Microsoft" ) != -1 ? window[ "flash" ] : document[ "flash" ];
    flash.send( value );
}
HTML код
Код:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="550" height="400" id="flash" align="middle">
			<param name="allowScriptAccess" value="sameDomain" />
			<param name="allowFullScreen" value="false" />
			<param name="movie" value="Untitled-1.swf" />
			<param name="quality" value="high" />
			<param name="bgcolor" value="#ffffff" />
			<embed
		        src="Untitled-1.swf" 
		        name="flash" align="middle"
		        play="true" loop="false" quality="high" allowScriptAccess="sameDomain"
		        width="550" height="400" scale="exactfit" 
		        type="application/x-shockwave-flash"
		        pluginspage="http://www.macromedia.com/go/getflashplayer">
		    </embed>	
		</object>
Javascript выдаёт ошибку TypeError: flash.send is not a function


Последний раз редактировалось dead; 22.02.2014 в 12:56.
Старый 22.02.2014, 12:00
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Код следует оформлять соответствующими тегами (кнопки # и AS3 в панели редактора сообщений)
__________________
Поймай яблоко 2!

Старый 22.02.2014, 13:05
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 3  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Сильно в код не вникал, но не вижу где вы вызываете JS-функцию to_flash.

Старый 22.02.2014, 13:08
dead вне форума Посмотреть профиль Отправить личное сообщение для dead Найти все сообщения от dead
  № 4  
Ответить с цитированием
dead

Регистрация: Feb 2014
Сообщений: 7
функцию to_flash() я вызвал, после чего получил ошибку: "TypeError: flash.send is not a function"

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

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

Старый 22.02.2014, 16:05
dead вне форума Посмотреть профиль Отправить личное сообщение для dead Найти все сообщения от dead
  № 6  
Ответить с цитированием
dead

Регистрация: Feb 2014
Сообщений: 7
Ничего не помогает. При сохранении .swf файла изменил Local playback security на access network only, всё равно не помогает.

Старый 22.02.2014, 16:39
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 7  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Скорее всего когда вызывается ваша JS функция to_flash() из контейнера, у флешке не успевает зарегистрироваться функция send, по которому контейнер может осуществить вызов функции у флешке.

Попробуйте вызывать в контейнере функцию инициализации после регистрации, вот так:
Код AS3:
ExternalInterface.addCallback("send", from_js);
 
// Отправляем контейнеру что приложение загрузилось
ExternalInterface.call('initApp');
Вот часть кода контейнера:
Код:
/**
 * Функция вызывается из флешки, и сообщает, что приложение загрузилось и все функции зарегистрированы.
*/
function initApp()
{
    to_flash( 'Hello' );
}


Последний раз редактировалось alexandrratush; 22.02.2014 в 17:44.
Старый 22.02.2014, 18:24
dead вне форума Посмотреть профиль Отправить личное сообщение для dead Найти все сообщения от dead
  № 8  
Ответить с цитированием
dead

Регистрация: Feb 2014
Сообщений: 7
alexandrratush, работает спасибо.

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

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

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


 


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


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