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

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

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

Регистрация: Oct 2009
Сообщений: 174
По умолчанию получить переменную из загруженной swf

Добрый день.
Подскажите как сделать чтобы можно было получить переменную
из загружаемой swf в загружающую?
К примеру загружаемая - Main1; загружающая Main2
В Main1 пишу:
Код AS3:
public function testVar():Number{
   return(stage.height);
}
В загружающей пишу
Код AS3:
...........
private function loadComplete(event:Event):void{
   trace(loader.content.testVar());
}
Выходит ошибка что testVar не существует.

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

Регистрация: Oct 2010
Адрес: Новосиб
Сообщений: 122
в загружаемой флешке нужно прописать allowDomain("*") #allowDomain()

Старый 16.01.2011, 10:54
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 3  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
а можно небольшой пример? не очень понятно где и как это использовать.

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

Регистрация: Oct 2010
Адрес: Новосиб
Сообщений: 122
просто пропиши в коде загружаемой флешки allowDomain("*") и всё будет работать

Старый 16.01.2011, 10:57
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 5  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
ок. понял. спасибо!)


Последний раз редактировалось Cornford; 16.01.2011 в 10:58. Причина: поторопился
Старый 16.01.2011, 11:05
kseniya вне форума Посмотреть профиль Отправить личное сообщение для kseniya Найти все сообщения от kseniya
  № 6  
Ответить с цитированием
kseniya
 
Аватар для kseniya

Регистрация: Oct 2010
Адрес: Новосиб
Сообщений: 122
да ещё. если грузишь флешку то в ней stage это общий обьект плеера так сказать. а root это объект каждой флешки, смотря конечно для каких целей вам stage.height... если нужно узнать высоту загружаемой флешки используйте root.height


Последний раз редактировалось kseniya; 16.01.2011 в 11:15.
Старый 16.01.2011, 21:35
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 7  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
разобрался с методом, дело не в нем. у меня обе флешки на одном домене. Переменные так и не подгружаются..

Старый 16.01.2011, 22:29
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 8  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Cornford, приведите полный листинг классов Main1 и Main2 (для удобства рекомендую переименовать например как MainLoader и MainContent, чтобы было ясно кто есть кто).

Старый 17.01.2011, 17:26
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 9  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
MainLoader - загружающая флешка:
Код AS3:
package{
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.text.TextField;
	import flash.net.URLRequest;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.display.StageScaleMode;
	import flash.geom.*;
	import flash.system.Security;
 
	public class Main extends MovieClip{
		public var preload:MovieClip = new preloader();
		public var loader:Loader = new Loader();
		public var req:URLRequest = new URLRequest('Outline.swf')
		public var scrollBar:MovieClip = new ScrollBar();
		public var bounds:Rectangle = new Rectangle(stage.width-18, 0, 0, stage.height - scrollBar.height);
		public var loadBool:Boolean = false;
		public var testText:TextField = new TextField();
		internal var inputHeight:Number = 0;
		public function Main():void{
 
			stage.scaleMode = StageScaleMode.NO_SCALE;
			preload.x = stage.width/2 - preload.width/2;
			preload.y = stage.height/2 - preload.height/2;
			addChild(preload);
			scrollBar.x = stage.width - 18;
			scrollBar.y = 0;
			addChild(scrollBar);
			testText.x = 50;
			testText.y = 50;
			testText.width = 50;
			Security.allowDomain('localhost/outline');
 
			loader.load(req);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
			scrollBar.addEventListener(MouseEvent.MOUSE_DOWN, scrollBarDown);
			scrollBar.addEventListener(MouseEvent.MOUSE_UP, scrollBarUp);
			scrollBar.addEventListener(MouseEvent.MOUSE_OUT, scrollBarOut);
			addEventListener(Event.ENTER_FRAME, frameEntered);
 
		}
		private function loadComplete(event:Event):void{
			addChild(loader);
			loader.x = 0;
			loader.y = 0;
			trace('complete!');
			trace(loader.content.testVar());
		}
		private function scrollBarDown(event:Event):void{
			scrollBar.startDrag(false, bounds);
		}
		private function scrollBarUp(event:Event):void{
			scrollBar.stopDrag();
		}
		private function scrollBarOut(event:Event):void{
			scrollBar.stopDrag()
		}
		private function frameEntered(event:Event):void{
			loader.y = 0 - scrollBar.y;
		}
	}
}
MainContent - флешка которую я загружаю имеет много строк но в частности):
Код AS3:
public function testVar():Number{
   return(stage.height);
}
Добавлено через 41 минуту
нашел. работает вот так:
Код AS3:
 event.target.content.testVar

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Нет, вот так:
Код AS3:
event.target.content.testVar();
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Теги
загрузка swf , передача параметра

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

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


 


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


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