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

in4core 20.10.2010 14:56

Перебор Текстовых полей с глобальной заменой содержимиого
 
Думаю вот сменщик языка сделать, чисто для своего проекта en и ru
Хотелось бы сделать в xml типа
Код:

<node  ru='стол'  en = 'table'/>
Вот и думаю, а есть ли возможность перебрать все ТЕКСТОВЫЕ поля циклом
типа

Код AS3:

for(var i in root) {
  if(i == TextField) {
    if(lang = 'ru')
    (i as TextField).text = xml.en[i];
  }
 }

Или онное не реально, когда текстовые поля могут быть в мувиклипах, а так же в классах и прочее?

Psycho Tiger 20.10.2010 14:58

Которые в дисплай листе можно.

in4core 20.10.2010 15:00

Тигр а можно подробнее? в дисплей листе имеется ввиду сделанные addChild ом ?

Bgg 20.10.2010 15:01

При инициализации представлениЯ шлют наверх события о том что в них есть ТекстФилды, контроллер собирает их(ТекстФилды) в массив, и при необходимости меняет у них text.

in4core 20.10.2010 15:06

Окончательно запутался в определениях) Покажите пример, если несложно

gloomyBrain 20.10.2010 15:08

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

arkadattx 20.10.2010 15:13

IMHO темы перекликаются.

Psycho Tiger 20.10.2010 15:14

Угу. Варианта Глума/Bgg, + везде при Event.ADDED надо просматривать на наличие текстфилдов, которые были созданы например в иде.

in4core 20.10.2010 15:16

Цитата:

- есть некое хранилище данных, которое диспатчит события при своих изменениях
Что за хранилище такое и как оно организовывается?

Цитата:

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

Psycho Tiger 20.10.2010 15:25

Проблем с этим не оберетесь. Событие шлётся по какому-то принципу, например, кто раньше добавился. В последствии из за изменения порядка добавления полетит всё содержимое.
Лучше сделать функцию getLocal, а смену языка проводить по всем текущим объектам - от старшего к младшим.


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

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