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

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

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

Регистрация: Sep 2009
Сообщений: 105
Отправить сообщение для demy с помощью ICQ
По умолчанию Передать переменную из флешки

Доброго времени суток.
Подскажите пожалуйста, как можно передать переменную не во флешку, а из нее.
То есть, есть html + js страница с флешкой.
Во флешке вычисляется переменная.
Эту переменную надо передать обратно на страницу, чтобы использовать в качестве высоты флешки.

Криво объясняю, конечно, да я действо не из прямых.
Суть в том, что страница не знает, какой высоты должна быть флешка, а флеш должен ей это сообщить.
(ведь вроде нельзя изменить высоту swf из AS3 программно)
Сомневаюсь, что это вообще возможно... Но если есть способ...

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Код AS3:
var value:Number = Math.PI;
 
if (ExternalInterface.available) {
ExternalInterface.call("setPIValue", value);
}
А в яваскрипте должна быть функция setPIValue, принимающая в параметр некое число
__________________
...вселенская грусть

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

Регистрация: Sep 2009
Сообщений: 105
Отправить сообщение для demy с помощью ICQ
Большое спасибо, а можно код функции?
Пока попробовала:
Код AS3:
if (ExternalInterface.available) {
	ExternalInterface.call("setFlashWidth", value);
}
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
	<head>
		<title>940x124</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<style type="text/css" media="screen">
		html, body { height:100%; background-color: #ffffff;}
		body { margin:0; padding:0; overflow:hidden; }
		#flashContent { width:100%; height:100%; }
		</style>
		<script>
		function setFlashWidth(width) {
			document.getElementById('940x124').width = width;
		}
		</script>
	</head>
	<body>
		<div id="flashContent">
			<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="940" height="124" id="940x124" align="middle">
				<param name="movie" value="940x124.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="transparent" />
				<param name="scale" value="showall" />
				<param name="menu" value="true" />
				<param name="devicefont" value="false" />
				<param name="salign" value="" />
				<param name="allowScriptAccess" value="sameDomain" />
				<!--[if !IE]>-->
				<object type="application/x-shockwave-flash" data="940x124.swf" width="940" height="124">
					<param name="movie" value="940x124.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="transparent" />
					<param name="scale" value="showall" />
					<param name="menu" value="true" />
					<param name="devicefont" value="false" />
					<param name="salign" value="" />
					<param name="allowScriptAccess" value="sameDomain" />
				<!--<![endif]-->
					<a href="http://www.adobe.com/go/getflash">
						<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
					</a>
				<!--[if !IE]>-->
				</object>
				<!--<![endif]-->
			</object>
		</div>
	</body>
</html>
Но как-то не очень он меня понял..


Последний раз редактировалось demy; 17.03.2011 в 18:44.
Старый 17.03.2011, 18:58
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Так Вы ничего не добьетесь =)
Внутри флешки нужно подписаться на ресайз от стейджа, а яваскриптом менять ширину дива, в котором находится флешка. Ну и, соответственно, в параметрах вставки флешки ее ширину нужно указать в процентах.
Код AS3:
public class Main extends Sprite {
 
	public function Main() {
 
		super();
 
		if (super.stage) this.init();
		else super.addEventListener(Event.ADDED_TO_STAGE, init);
 
	}
 
	private function init(event:Event = null):void {
 
		super.removeEventListener(Event.ADDED_TO_STAGE, init);
		super.stage.scaleMode = StageScaleMode.NO_SCALE;
		super.stage.align = StageAlign.TOP_LEFT;
 
		// entry point
 
		super.stage.addEventListener(event.RESIZE, onStageResize);
 
	}
 
	private function onStageResize(event:Event):void {
 
		// перерисовываем внутренности
 
	}
 
}
__________________
...вселенская грусть

Старый 18.03.2011, 00:48
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 5  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Но как-то не очень он меня понял..
А в чем именно проблема выражается? Возможны несколько вариантов.
1. ExternalInterface.available - false. Проверяется, например, trace'ом, выводом в текстовое поле или работой следующих примеров.
2. Ошибок (исключений) при вызове ExternalInterface.call никаких нет? Исключений там, например. Видно в DebugPlayer, если ошибки нигде не отлавливаются.
3. В javascript метод вызывается? Поменяйте скрипт на следующее:
Код:
		<script type="text/javascript" language="JavaScript">
		function setFlashWidth(width) {
                        alert("It works! Width is " + width);
			document.getElementById('940x124').width = width;
		}
		</script>
4. В HTML-коде два вложенных тега Object. Сейчас код устанавливает размер только у внешнего. У внутреннего размер остается фиксирован. А во всяких firefox как раз определяющим является внутренний Object. Так что нужно дать ID-шники обоим элементам и размер устанавливать у них обоих.

Старый 18.03.2011, 01:25
surlac вне форума Посмотреть профиль Отправить личное сообщение для surlac Найти все сообщения от surlac
  № 6  
Ответить с цитированием
surlac
 
Аватар для surlac

блогер
Регистрация: Nov 2010
Сообщений: 143
Записей в блоге: 1
Цитата:
Сообщение от gloomyBrain Посмотреть сообщение
Код AS3:
if (ExternalInterface.available) {
ExternalInterface.call("setPIValue", value);
}
Или
Код AS3:
var url:String = "javascript:setPIValue('" + value + "')";
navigateToURL(new URLRequest(url));

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

Регистрация: Sep 2009
Сообщений: 105
Отправить сообщение для demy с помощью ICQ
Спасибо, надо пробовать.


Последний раз редактировалось demy; 28.03.2011 в 18:13.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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