Показать сообщение отдельно
Старый 12.08.2015, 08:35
pskameton вне форума Посмотреть профиль Отправить личное сообщение для pskameton Найти все сообщения от pskameton
  № 6  
Ответить с цитированием
pskameton

Регистрация: Aug 2015
Сообщений: 3
Цитата:
Сообщение от Isfet Посмотреть сообщение
вам неправильно подсказали, ClipInfo - класс, а вам нужно обращаться через ссылку на экземпляр класса,

вы где-то создали экземпляр
Код AS3:
 
var clipInfo:ClipInfo = new ClipInfo();

так вот clipInfo - ссылка на экземпляр , и через нее надо обращаться к этому экземпляру, а ClipInfo - это класс ващего экземпляра , к нему можно обратиться , если создать в нем , допустим статичную функцию, но это уже другая история.

тоесть вы должны дойти из главного класса до вашего текст-поля ПО ССЫЛКАМ

Код AS3:
panel_left.animpanelleft.emotion.emotioninfo.text = info;
если так не получается , то выводите на экран

Код AS3:
 
trace(panel_left); 
trace(panel_left.animpanelleft);
trace(panel_left.animpanelleft.emotion);
trace(panel_left.animpanelleft.emotion.emotioninfo);
trace(panel_left.animpanelleft.emotion.emotioninfo.text); // тут должен вывестить текущий текст в вашем поле
если в одном из этих трейсов будет null, значит у вас неправильная ссылка на экземпляр

Добавлено через 8 минут


вот здесь нужно убрать все MovieClip(...), компилятор постарается преобразовать panel_left к типу MovieClip, если ваша левая панель не наследована от MovieClip (а она я больше чем уверен должна быть наследована от Sprite), то компилятор выдаст NULL, и соответственно вы потеряете ссылку.

пишите так
Код AS3:
 
panel_left.animpanelleft.emotion.emotioninfo.text = info;
но все равно как-то коряво.
Я хотел уточнить у меня в коде:

var temppanelleft:MovieClip = new panel_left();

Тоесть создаётся переменная MovieClip, под названием temppanelleft я так понимаю используя класс panel_left из библиотеки.

Так как добарться до текстового поля?

temppanelleft это единственный элемент который выводится динамическим образом.

Пробовал так:

temppanelleft.emotioninfo.text = info;

и так:

temppanelleft.panel_left.anim_panelleft.emotion.emotioninfo.text = info;

и так:

temppanelleft.anim_panelleft.emotion.emotioninfo.text = info;

Не выводит ничего, trace тоже прописан, окно вывода пустое.

Добавлено через 33 минуты
И так, сейчас есть такой код:

Код AS3:
var info:String = "20";
 
temppanelleft.panel_left.animpanelleft.emotion.emotioninfo.text = info;
 
trace(info);
trace(temppanelleft);
trace(temppanelleft.panel_left); 
trace(temppanelleft.panel_left.animpanelleft);
trace(temppanelleft.panel_left.animpanelleft.emotion);
trace(temppanelleft.panel_left.animpanelleft.emotion.emotioninfo.text);
Выходит ошибка: TypeError: Error #1010: Термин не определен и не имеет свойств.
at _fla::MainTimeline/frame30()

Как это всё устроено:

temppanelleft - это MovieClip созданный динамическим образом так:
Код AS3:
var temppanelleft:MovieClip = new panel_left();
и выведенный на сцену.

panel_left - это класс Ролика который лежит в библиотеке.
animpanelleft - так же класс ролика в библиотеке, но он вставлен в panel_left
emotion - так же класс ролика в библиотеке, но он вставлен в animpanelleft

emotioninfo - это имя динамического текстового поле которое находится в ролике emotion и в него нужно вывести данные переменной info, которая находится в главном коде.

Я уже 2 дня с этим вожусь и совершенно мозг отказывается понимать как это сделать что бы работало (

Добавлено через 2 часа 37 минут
Разобрался, во всём в правду говорится утро вечера мудренее. Спасибо Isfet


Последний раз редактировалось pskameton; 12.08.2015 в 09:10.