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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: May 2014
Сообщений: 22
По умолчанию Вызов AS 3 функции из JavaScript

Смотрел хелп, так и не понял, как вызвать функцию во флеше из JS с передачей аргумента.

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

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Все просто:
Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.external.ExternalInterface;
	import flash.system.Security;
 
	public class Main extends MovieClip
	{
 
		public function Main() 
		{
			init();
		}
 
		public function init():void
		{
			if (ExternalInterface.available)
			{
				ExternalInterface.call("initApp");
 
				ExternalInterface.addCallback("callFunc", callFromJSCallback);
			}
		}
 
		private function callFromJSCallback(text:String):void
		{
			labelTest.text = text;
		}
 
	}
 
}
Код:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8"/>
	<title>Main</title>
	<meta name="description" content="" />
	<script type="text/javascript">
		
		/** Сохраняем ссылку на СВФ-объект */
		var swfObj = new Object();
		
		onload = function() 
		{
			sync();
		}
		
		function sync() 
		{
			// Получаем ссылку на нашу SWF
			swfObj = swfobject.getObjectById("Main");
			
			console.log("swfObj", swfObj);
		}
		
//- FUNCTION CALL IN FLASH
		
		function callFuncFlash() 
		{
			console.log("swfObj", swfObj);
			
			swfObj.callFunc("test1");
		}
		
//-	FUNCTION CALL FROM FLASH

		/** Функция вызывается из флешки, и сообщает, что приложение загрузилось */
		function initApp() 
		{
			sync();
		}
		
	</script>
	
	
	<script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
	<script>
		var flashvars = {
		};
		var params = {
			menu: "false",
			scale: "noScale",
			allowFullscreen: "true",
			allowScriptAccess: "always",
			bgcolor: "",
			wmode: "direct" // can cause issues with FP settings & webcam
		};
		var attributes = {
			id:"Main"
		};
		swfobject.embedSWF(
			"Main.swf", 
			"altContent", "550px", "400px", "10.0.0", 
			"expressInstall.swf", 
			flashvars, params, attributes);
	</script>
	<style>
		html, body { height:100%; }
		body { margin:0; }
	</style>
</head>
<body>
	
	<input type="button" value="Call" onclick="callFuncFlash()">
	
	<div id="altContent">
		<h1>Main</h1>
		<p><a href="http://www.adobe.com/go/getflashplayer">Get Adobe Flash player</a></p>
	</div>
</body>
</html>

Старый 24.07.2014, 22:47
web5talker вне форума Посмотреть профиль Отправить личное сообщение для web5talker Найти все сообщения от web5talker
  № 3  
Ответить с цитированием
web5talker

Регистрация: May 2014
Сообщений: 22
alexandrratush, спасибо! Flasher как всегда выручил!

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

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

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


 


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


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