PDA

Просмотр полной версии : Access variable from external class


dreamer123
20.02.2011, 17:19
Привет всем,

прошу вашего совета, решение, подозреваю тривиальное, и именно в синтаксисе у меня проблема:

есть код, внутри кадра таймлайна fla файла, также есть класс, который подключается в следующем кадре fla файла:

import classes.VoiceRecorder;


var vr:VoiceRecorder = new VoiceRecorder();
addChild(vr);

Из этого класса VoiceRecorder мне нужно обратиться к созданному в первом кадре объекту my_player. Подскажите пожалуйста правильный синтаксис для такого отображения.


import fl.video.*;
...
var my_player:FLVPlayback;
...


Спасибо

tsarapkabel
21.02.2011, 02:42
Что-то я не совсем понял к кому надо обратиться. К my_player?
Для начала предлагаю определиться с написанием кода. Либо в кадрах, либо в классах.

in4core
21.02.2011, 03:27
Для начала предлагаю определиться с написанием кода. Либо в кадрах, либо в классах. И да пишите все в классах, не надо трогать кадры.

Но если уж так хочется, в вашем примере : то сначала нужно проверить, что получает первоначальный вес, код в 1 кадре, или main класс. Если кадр, то ок - trace(my_player) из main выведет приекрсно, если наоборот, то дождаться появления кадр-кода и проверять далее. Но ваще помоему ересь несу, ведь сначала просчитываются кадры, а только потом document class

cleptoman
21.02.2011, 09:51
Но ваще помоему ересь несу, ведь сначала просчитываются кадры, а только потом document class
мда..а проверить не судьба?
это все равно что получить свойства несозданного экземпляра, а потом уже создать экземпляр
сначала срабатывает конструктор вашего рута, потом уже все остальное.

dvrbear
11.03.2011, 18:52
я вот тоже маюсь и найти не могу ответ.
создание классов, объявление переменных и функций, добавление одного в другой - все прекрасно!

но как обратиться из только что созданного (добавленного) класса в "верхний"?
чтоб изменить к примеру его переменную или вызвать функцию

parent не катит
полный путь по папкам тоже

помогите включить мозги в нужную передачу!
и если такое возможно то как передать "путь к объекту" и какого типа должна быть переданная такого рода переменная (речь о том что было в AS2 - Eval(_root.итд)), чтоб к примеру из самого "нижнего класса" можно было скомандовать куда произвести Eval(путь).addChild добавление.

заранее благодарю

Hidest
11.03.2011, 20:23
Никогда не нужно из "нижнего" класса никем командовать!

dvrbear
11.03.2011, 20:31
а как тогда прелодеру оповестить что все загруженно и откуда тогда тому во что надо загрузить возьмет это у прелодера?

Jewelz
11.03.2011, 21:27
у прелоадера сделайте public св-во того "во что надо загрузить", а оповестить по событию

dvrbear
12.03.2011, 11:53
хммм, да вопрос не в том что ктото не может обратиться изза прав доступа, а в том как вообще передавать путь на объект?
в as2 я мог писать Eval("_root.итд")
а тут как?
к примеру xxx=путь к объекту
какого типа он должен быть?
и как его указать для "xxx.addChild(то что загрузилось)" ?

идея вообще в том чтоб был некий универсальный прелодер:
1 - подключили
2 - запустили функцию прелодера в которую передали что грузить и куда addChild добавить
3 - после того как прелодер все сделал, он сам себя ликвидирует

1 и 3 все ок
2 - тупик