Форум 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=150367)

in4core 10.02.2011 15:51

Передача данных между флешками имеющими свои документ классы
 
Собственно вопрос видимо обсуждался сто раз, но толкового ответа не увидел.

Основная флешка ( Main Class)
ПОдгружаемая ( Sub Class)

Делаю так, в подгружаемой создаю статическую перменную например DATA
А в loader при COmplete пишу :
Код AS3:

e.target.content.DATA = '222';

В подгружаемой после addedToStage
Код AS3:

trace(DATA);

Выводит undefined, однако если в Complete сделать трейс :
Код AS3:

e.target.content.DATA = '222' ; trace(e.target.content.DATA) // 222

Почему так выходит, ведь назначение переменной поидее происходит до добавления на сцену?

И второй не понятный момент - делаем просто трейс из второй флешки,
Код AS3:

trace(root) // Sub Class

как ни старайся. У меня есть сомнения насчет _lockRoot как было в AS2/

alatar 10.02.2011 16:02

Цитата:

И второй не понятный момент - делаем просто трейс из второй флешки,
root у каждой флешки свой.

zuxul 10.02.2011 16:02

У Вас документ класс случайно не динамический? Если да, то такая штука -
Цитата:

Сообщение от in4core
Код AS3:

e.target.content.DATA = '222' ; trace(e.target.content.DATA) // 222


сработатет на ура...
А статическую переменную, я так думаю, нужно выдергивать немного другим методом.

alatar 10.02.2011 16:05

Цитата:

В подгружаемой после addedToStage
А где вы ее добавляете на сцену?

in4core 10.02.2011 16:06

что значит динамический? dynamic public class ? Нет.

У меня задача, из одной флешки передать строку в другую. Обе флешки как я уже сказал имеют свой документ класс и наследуются от спрайта. Как передать то?

alatar 10.02.2011 16:08

Цитата:

Как передать то?
Ну так вы ее передали. Кстати зачем тут статик?

in4core 10.02.2011 16:08

@alatar
Методика такая :
Код AS3:

addChild(loader);
// здесь я не могу написать loader.content.DATA = '222'  и это логично
loader.contentLoaderInfo.addEventListener(Event.COMPLETE , comp)
function copm(e:Event) {
  e.target.content.DATA = '222';
}

Добавлено через 1 минуту
@alatar не совсем так. Дело вот в чем. Если бы я ее передал мне трейс выдал ее сразу после эддедтостейдж в конструкторе

Bgg 10.02.2011 16:10

А интерфейс тут не поможет? -.0

alatar 10.02.2011 16:11

Цитата:

@alatar не совсем так. Дело вот в чем. Если бы я ее передал мне трейс выдал ее сразу после эддедтостейдж в конструкторе
С чего вдруг?. Флешка загрузилась, ее добавили на сцену, сработал ADDED_TO_STAGE, послали событие COMPLETE, присвоили переменную.

zuxul 10.02.2011 16:12

Статическая переменная - это переменная класса. Сначала, нужно взять класс, а потом и переменную...попробуйте так -
Код AS3:

loader.loaderInfo.applicationDomain.getDefinition('Имя документ класса').DATA



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

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