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

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

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

Регистрация: Jul 2009
Сообщений: 46
По умолчанию Swf передать параметр во внутреннюю swf

Задача: есть одна флэшка.
внутри неё я загружаю другую как-то. Как мне при загрузке передать какие-то параметры внутрь?
Пробовал через адрес флэшки (т.е. get-методом), но что-то не вышло.

Старый 03.09.2009, 02:28
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Покажите как не вышло, должно было выйти.
__________________
Hell is the possibility of sanity

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

Регистрация: Jul 2009
Сообщений: 46
Код AS3:
var myLoader:Loader = new Loader();
myLoader.load(new URLRequest("01.swf?name1=text"));
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
function onLoaded(e) {
	//myLoader.content.param.mmm = 100;
	addChild(myLoader);
}
Код внутри подкачиваемого:

Код AS3:
ttt.text = stage.loaderInfo.parameters["name1"];


Последний раз редактировалось konst06; 03.09.2009 в 03:04.
Старый 03.09.2009, 09:28
veisss вне форума Посмотреть профиль Отправить личное сообщение для veisss Найти все сообщения от veisss
  № 4  
Ответить с цитированием
veisss
[+1 16.08.10]

Регистрация: Jun 2009
Сообщений: 93
я однажды такое делал. во внутренней swf в первомже фрейме напиши функцию
Код AS3:
function setName1(name1:String){
    ttt.text =name1;
}
во внешней
Код AS3:
 
function onLoaded(e:Event) {
	MovieClip(e.target.content).setName1("aaaaaaaaaaaaaaaaaaaaaaa")
	addChild(e.target);
}

Старый 03.09.2009, 11:18
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 5  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
Цитата:
Сообщение от konst06 Посмотреть сообщение
Код внутри подкачиваемого:

Код AS3:
ttt.text = stage.loaderInfo.parameters["name1"];
Код AS3:
ttt.text = root.loaderInfo.parameters["name1"];
?

Старый 03.09.2009, 12:13
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
1. stage не доступен в загруженом SWF до того, как вы добавите его в дисплей лист.
2. Даже после того, как вы добавите его в дисплей лист, он будет указывать на stage загрузившей его SWF. Так что вам в любом случае надо ссылаться на root. Опять же, root не доступен, пока загруженый SWF не добавится в дисплей лист.

Кроме всего прочего, parameters - это динамический объект, так что использовать [] совсем не обязательно - можно и
Код AS3:
root.loaderInfo.parameters.name1
__________________
Hell is the possibility of sanity

Старый 03.09.2009, 20:36
konst06 вне форума Посмотреть профиль Отправить личное сообщение для konst06 Найти все сообщения от konst06
  № 7  
Ответить с цитированием
konst06

Регистрация: Jul 2009
Сообщений: 46
2veisss:

Если не секрет, то куда ещё можно записать этот код в дочернем мувике?
А то не хочется в кадр его кидать.

Старый 03.09.2009, 21:23
veisss вне форума Посмотреть профиль Отправить личное сообщение для veisss Найти все сообщения от veisss
  № 8  
Ответить с цитированием
veisss
[+1 16.08.10]

Регистрация: Jun 2009
Сообщений: 93
сама загруженная SWF является екземпляром Document Class-а того SWF.
то есть из внешней SWF мы можем вызвать паблик функции Document Class-а.

вот Document Class главного SWF

Код AS3:
package{
 
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
 
    public class MainFL extends MovieClip{
 
        private var url:String = "loadedFL.swf";
 
        public function MainFL(){
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            var request:URLRequest = new URLRequest(url);
            loader.load(request);
            loader.x=0;
            loader.y=0;
        }
        private function completeHandler(event:Event):void {
            MovieClip(event.target.content).setText("dddddddddddddd")
            trace("mainFL: loadCmplete");
            addChild(MovieClip(event.target.content));
        }
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: bytesLoaded=" + event.bytesLoaded);
        }
    }
}
как видишь просто грузим SWF-ку

а ето Document Class загружаемого SWF

Код AS3:
package{
 
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
 
    public class LoadedFL extends MovieClip{
        private var texH:TextHolder;
 
        public function LoadedFL(){
            texH=new TextHolder;
            addChild(texH);
            texH.x=100;
            texH.y=100;
        }
 
        public function setText(txt:String="default"):void{
            texH.txt.text=txt;
        }
    }
}

Старый 03.09.2009, 21:48
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 9  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
2veisss
Цитата:
Код AS3:
MovieClip(event.target.content).setText("dddddddddddddd")
вы это проверяли?
вообще правильнее использовать интерфейсы в этом случае
__________________
я могу стать всем, если только захочу

Старый 03.09.2009, 22:33
veisss вне форума Посмотреть профиль Отправить личное сообщение для veisss Найти все сообщения от veisss
  № 10  
Ответить с цитированием
veisss
[+1 16.08.10]

Регистрация: Jun 2009
Сообщений: 93
проверял, работает.

а чем плох прямой вызов?

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

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

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


 


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


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