Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с тектовым полем textField (http://www.flasher.ru/forum/showthread.php?t=153388)

cremnet 01.04.2011 23:44

Проблема с тектовым полем textField
 
Проблема с изменением текста в объекте TextField
получить содержание из текстового поля могу получить а вот изменить не получается. Точнее говоря при проверке содержания параметра .text текст изменился но визуально этого не видно. полный код сильно велик и разбит на кучу .as файлов, но попробую сумировать.

Код AS3:

// .swf файл с ресурсами для флешки 
// в этом файле есть MovieClip с динамическим классом MovieClipDinamycClass
// в этом МС есть текстовые поля к которым я и пытаюсь обратится чтобы менять их динамически
var my_mc:MovieClip = new MovieClipDinamycClass();
addChild(my_mc);
...
my_mc._textfield.text = 'text';
trace(my_mc._textfield.text) // выдает нужное значение 'text', но визуально поле остается тем же

Я решил что я провожу изменения в объекте... который по какойто причине склонировался, решил обратится другим способом взял МС и попытался достать TextField с помощью getChildByName

Код AS3:

my_mc.getChildByName('_textfield').text = 'text';

на что получил сбой при компилаяции с ошибкой 1180: Call to a possibly undefined method DisplayObject.
иду дальше вкладываю в pakage импорт import flash.display.DisplayObject;
компилируется но вылазит ошибка ArgumentError: Error #2012: DisplayObject$ class cannot be instantiated.

ваще запутался... помогите решить проблему или скажите куда копать

bav 02.04.2011 00:27

Удостоверьтесь, что вы изменяете текст именно в том поле, которое отображается.
Код AS3:

// Если выше (или в классе MovieClipDinamycClass) не было примерно такой строчки...
my_mc._textfield.name = "_textfield";
// то следующая строка будет выдавать ошибку.
my_mc.getChildByName('_textfield').text = 'text';

Внимательней ознакомьтесь со справкой по DisplayObjectContainer.getChildByName(), там есть примеры. По-моему, вы или забыли задать имя текстовому полю, или добавили в список отображение не то поле. Приведенный вами код не содержит ошибок.

nldr 02.04.2011 01:17

_textfield.autoSize = TextFieldAutoSize.LEFT; попробуйте. Скорее всего не хватает ширины поля.
А вот getChildByName возвращает экземпляр по полю(/свойству/переменной) name, а не по имени переменной в коде.

cremnet 03.04.2011 11:23

не один из вариантов не решает проблемы


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

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