Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   управление параметрами внешнего файла (http://www.flasher.ru/forum/showthread.php?t=125899)

Max_73 04.06.2009 20:34

управление параметрами внешнего файла
 
Добрый вечер,
можно ли при загрузке внешнего файла (флеш мувик) передать ему параметры и функции переменных нашего исходного

silin 04.06.2009 21:40

параметры передать можно, см. flashVars
зы:
а "функции переменных нашего исходного" передать можно только в дурдом для анализа

AL.exe 05.06.2009 03:47

Код AS3:

"someFile.swf?param1=pampam&param2=pumpum"


Nikomed 06.06.2009 20:38

доброго времени суток.
недавно с AS работаю, у меня вопросик...
есть например 3 swf-ки. Между ними реализован переход методом load в контейнер contentarea (MovieClip), т.е в каждом файле по кнопке которая вызывает loader и добавляет child в contentarea . Так вот вопрос: как сделать чтобы contentarea 1-ой swf совпадала с contentarea 2 и 3 файла, которые мы грузим, чтобы происходило не наложение разных contentarea а лишь изменялось содержимое контейнера. :umnik2:

silin 06.06.2009 20:53

ага, вот оно
чтобы не происходидо наложение разных contentarea при переходе методом load в контейнер contentarea (MovieClip), думаю что при загрузке нужно обязательно передать функции переменных нашего исходного

а если серьезно, то ни разу не понятно что происходит и в чем проблема

Nikomed 06.06.2009 22:12

Цитата:

Сообщение от silin (Сообщение 826389)
ага, вот оно
чтобы не происходидо наложение разных contentarea при переходе методом load в контейнер contentarea (MovieClip), думаю что при загрузке нужно обязательно передать функции переменных нашего исходного

а если серьезно, то ни разу не понятно что происходит и в чем проблема

проблема в том, что когда грузится новая swf в контейнер то происходит наложение на предыдущую swf

Раньше можно было сделать так:
Код AS1/AS2:

loadMovieNum("2.swf?var1=value1&var2=value2", 0);

А в AS3?

silin 06.06.2009 22:56

ага, т.е. есть контейнер, в который ты кладешь флешку, в которой есть свой контейнер, а в него следующую, у которой есть свой и т.д.?

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

Nikomed 06.06.2009 23:07

потому что эти 3 файла это 3 разных меню, у каждого из них есть главы, а главы ссылаются на игры и фильмы, из игр и фильмов есть выходы обратно в меню и так-же реализованы переходы по меню, и требуется чтобы каждое меню, фильм, игра были отдельно swf...т.е таких кнопок загрузки огромное количество, т.е сначала мы попадаем в меню выбора глав, нажали кнопку (выбрали главу) грузится новое меню со списком игр\фильмов, далее жмём игру\фильм и грузится игра\фильм соответственно... вот всё это дело надо грузить удаляя все предыдуще загруженное... поэтому если не затруднит, можно поподробнее про родительский?

Я всё пытаюсь сделать так, чтобы все swf-ки грузились в 1 контейнер, предварительно очищая его...

silin 07.06.2009 00:24

>>чтобы все swf-ки грузились в 1 контейнер, предварительно очищая его...
как вариант такая схема:
основная флешка: лоадер и метод загрузки, при старте грузим первую подгружаемую
Код AS3:

public class Main extends Sprite 
{
        private var _loader:Loader = new Loader();
        public function Main():void
        {
                addChild(_loader);
                load("test1.swf");
        }
 
        public function load(url:String):void
        {
                _loader.load(new URLRequest(url));
        }
}

подгружаемые флешки (у меня в тесте их было две с урлами загрузки друг друга и кнопками разного цвета)
Код AS3:

public class Test extends Sprite 
{
        public function Test():void
        {
                var but:Sprite = new Sprite();
                but.graphics.beginFill(0xFF0000);//0x0000FF
                but.graphics.drawRect(0, 0, 50, 50);
                //but.x = 50;
                addChild(but);
                but.addEventListener(MouseEvent.CLICK, butClickHandler);
        }
 
        private function butClickHandler(evnt:MouseEvent):void
        {
                //вызываем load основной флешки, он загрузит на место старой (этой) новую
                //если не вкомпилировать класс основной флешки, вызывать метод придется через []
                parent.parent["load"]("test1.swf");//"test2.swf"
        }
 
}


Nikomed 07.06.2009 17:20

пасиб за помощь, я ведь прально понимаю что данный код мы должны использовать в отдельном as. файле с ссылкой на наш fla. и выглядеть это будет так:
Код AS3:

package {
public class Main extends Sprite
...
}

Затем эту красоту мы import в наш fla?
Если не прально мыслю, то как тогда сделать так чтобы он на Public не ругался?


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

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