Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Ссылка на объект в символе... (http://www.flasher.ru/forum/showthread.php?t=88318)

Plekhanov 21.11.2006 13:27

Ссылка на объект в символе...
 
Есть экземпляр символа кнопки aaa_btn. В этом символе кнопки есть динамический текст title_txt.
Как я понял содержание этого текста title_txt.text, т.е., чтобы поменять текст надо: title_txt.text="тумба-юмба"...
Так ли? Если да, то как сделать ссылку на этот объект из экзепляра кнопки???

dacino 21.11.2006 13:49

ну если я правильно тебя понял, то:
Код:

this.title_txt.text

Plekhanov 21.11.2006 13:57

Если я вызываю из скрипта первого фрейма приложения

Код:

trace(aaa_btn.title_txt.text)
дает undefine... ??? ??? ??? Значит ссылка неверна...

И еще, я как понял скрипт первого фрейма идет как глобальный? Я там функцию обозвал и она видна всем объектам... Это правильно?

Я думаю, что в кнопке есть еще фреймы, может еще надо фрейм указывать?

El Scream 21.11.2006 14:32

Молодой человек, вы так спокойно оперируете "зарезервированными" словами, что в конец всех запутали.

Есть экземпляр символа кнопки aaa_btn
Как вы создаете экземпляр?
Откуда и в какой момент времени вы присваиваете текст и обращаетесь к клипу?

Plekhanov 21.11.2006 16:22

Цитата:

Как вы создаете экземпляр?
Откуда и в какой момент времени вы присваиваете текст и обращаетесь к клипу?
Просто интерактивно создаю кнопку на экране перетащив символ с уже введенным текстом на экран... А потом хочу, чтобы в каждом экземпляре был другой текст...

wvxvw 21.11.2006 17:59

Цитата:

Просто интерактивно создаю кнопку на экране перетащив символ с уже введенным текстом на экран... А потом хочу, чтобы в каждом экземпляре был другой текст...
Интерактивность подразумевает взаимодействие с пользователем, вы, наверное, хотели сказать что-то другое...

El Scream 21.11.2006 18:11

Изначально неправильное понимание. Если вы из библиотеки извлекаете несколько одинаковых объектов и начинаете править один из них до компиляции, то изменения будут происходить во всех перенесенных вами объектах.
решинием будет программно изменять текст в каждой из копий.
Как это делать:
1. переносим столько копий сколько нам нужно на слой
2. присваиваем им уникальные имена ( Поле Instanse Name в разделе Properties). Такие как my_obj1,my_obj2, и так далее. При этом внутри них ничего изменяться не будет, т.е. если текстовое поле было названо изначально my_text, то оно во всех копиях так и останется my_text
3. создем новый слой, нажимаем на первый кадр, переходим в раздел Action
4. Пишем код
Код:

_root.my_obj1.my_text.text="Это первый объект";
_root.my_obj2.my_text.text="Это второй";
_root.my_obj3.my_text.text="Это третий


El Scream 21.11.2006 18:11

Изначально неправильное понимание. Если вы из библиотеки извлекаете несколько одинаковых объектов и начинаете править один из них до компиляции, то изменения будут происходить во всех перенесенных вами объектах.
решинием будет программно изменять текст в каждой из копий.
Как это делать:
1. переносим столько копий сколько нам нужно на слой
2. присваиваем им уникальные имена ( Поле Instanse Name в разделе Properties). Такие как my_obj1,my_obj2, и так далее. При этом внутри них ничего изменяться не будет, т.е. если текстовое поле было названо изначально my_text, то оно во всех копиях так и останется my_text
3. создем новый слой, нажимаем на первый кадр, переходим в раздел Action
4. Пишем код
Код:

_root.my_obj1.my_text.text="Это первый объект";
_root.my_obj2.my_text.text="Это второй";
_root.my_obj3.my_text.text="Это третий";


Plekhanov 22.11.2006 07:13

Цитата:

Изначально неправильное понимание. Если вы из библиотеки извлекаете несколько одинаковых объектов и начинаете править один из них до компиляции, то изменения будут происходить во всех перенесенных вами объектах.
Не согласен... Как раз это я понимаю и третий день бьюсь над этой проблемой. По этому мне и нужна ссылка на этот текст.
Делаю один в один, как ты написал... и опять
Код:

_root.aaa_btn.title_txt.text="Первый";
_root.bbb_btn.title_txt.text="Второй";
trace(_root.bbb_btn.title_txt.text);

дает undefine

Повсей видимости эта идея утопическая... Во флэше так, по моему не делают... А вот как сделать символ кнопки с независимым текстом в экземплярах... Я нарыл компонент Button... Но это не то малость... Я хочу научится создавать свои такие компоненты, со своим дизайном, анимацией...

Kikasso 22.11.2006 10:48

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

trace(_root.bbb_btn);
trace(_root.bbb_btn.title_txt);

Что выводит?

screamge 22.11.2006 13:16

Вложений: 1
вот воспользуйся...если не поймешь выложи свой исходник мы посмотрим:)

Plekhanov 22.11.2006 14:16

Не-е-е... Я по всякому делал... Кнопку видит... типа: _level0.bbb_btn, а на title_txt - undefined, хоть тренси.
Раз идея неутопическая, значит расковыряю со временем... Но, блин, надо это дело добить, иначе вообще работать невозможно.
Например вчера, даю клиенту вариант, а в кнопке надо не "Пресс-релиз" написать, а "Положение" и размер увеличить... У меня шесть кнопок... Чтобы каждую изменить, надо ее открыть на редактирование, поправить текст в трех фреймах... мутатень...

Plekhanov 22.11.2006 14:42

Вложений: 1
Большой сенкс, screamge! Забавный материальчик... Я флешу только четыре дня, по этому мне любая инфа пригодится.
А мой пример очень прост...

Plekhanov 22.11.2006 16:01

Цитата:

Интерактивность подразумевает взаимодействие с пользователем, вы, наверное, хотели сказать что-то другое...
Я хотел сказать, что кнопка создана ручками, тобиш перетащил мышкой из библиотеки и получил экземпляр... а не пеисал в скриптах дефайны, конструкторы, классы и т.д.
Чем вам, молодой человек, не интерактивность...??? Это и есть в какой-то степени интерактивное программирование... Есть интерфейсы командные, оконные, программные, языковые, интерактивные. Прелесть современных языков программирования, что они поддерживают все интерфейсы... ИМХО.


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

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