Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
AS 2.0

Не удается отследить события на textfield

28.01.2013, 11:47. Показов 1576. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Есть задача, при нажатии на текстовое поле типа "input", вывести на экран три различных фигуры.
Я пробовал помещать текстбоксы в movieclip и отслеживать событие onRelease - в итоге событие отслеживается, но нет возможности что-либо ввести в само текстовое поле(в интерфейсе) + не выводится текст который задан в коде.
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
for (i in this)
{
    if (i == "input")
    {
        this[i].onRelease = function()
        {
            this[i].txt.text="blabla";
                        trace("1");
        }
    }
}
В итоге, trace - отрабатывает, а вот текст в поле не помещается.

Так же попробовал создать простое текстовое поле ( не в movieclipe), и отследить событие onSetFocus - событие просто не обрабатывается.
Подскажите, как лучше поступить? AS 2.0

Заранее спасибо!

Добавлено через 9 минут
Прошу прощения, событие onSetFocus все же обрабатывается, но вот беда:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
for (i in this)
{
    if (i == "input")
    {
        this[i].txt.onSetFocus = function()
        {
            this[i].txt.text="gaga"; // Текст не выводится, так как
            trace(i) // здесь уже лежит другой обьект =(
        }
    }
}
Если же в коде жестко указать куда писать текст, то все ок.
Подскажите, почему в условии
ActionScript 3
1
2
3
4
if (i==input)
{
trace(i); // уже выводит другой обьект?
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2013, 11:47
Ответы с готовыми решениями:

Как отследить события на USB?
Здравствуйте. Есть подозрение, что какой-то драйвер или программа перехватывает USB порты на короткое время, в связи с чем рвется...

Отследить наступление события разворачивания подтаблицы
Здравствуйте! Подскажите пожалуйста как можно отследить, что пользователь нажал на "+" для разворачивания подтаблицы. Реально...

Отследить события ленты MS office interopt
Здравствуйте. Запускаю excel Dim WithEvents xlApp As Excel.Application xlApp = New Excel.Application и прошу...

10
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
28.01.2013, 12:30
ichgo, потому что оперировать нужно не абстрактными именами в абстрактных объектах, а ссылками на вполне реальные объекты.
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
28.01.2013, 15:24  [ТС]
TanaTiX, я бы с радостью так и делал, но обьекты мне приходится генерировать в цикле, если есть какая-то возможность сохранить при этом ссылки на все созданные в цикле обьекты, подскажи как это сделать? (По возможности с кодом)

Я делаю вот так:
ActionScript 3
1
2
3
4
for (i = 0; i<=10; i++)
{
this.createTextField("bla"+i,,,,);
}
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
28.01.2013, 15:47
ichgo, да просто помещай в массив
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
28.01.2013, 17:19  [ТС]
TanaTiX, Попробовал, не совсем понял, все равно ведь в массив я всеравно помещаю строки (имя обьекта).
Или туда можно поместить ссылку? (если да, то как?).

Заранее спасибо!
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
28.01.2013, 17:41
Примерно так.
ActionScript 3
1
2
createTextField("my_txt", 1, 100, 100, 300, 100);
arr.push(my_txt);

Не по теме:

...как же я не люблю ас2

1
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
30.01.2013, 09:32  [ТС]
TanaTiX, Ну это в случае, если экземпляр создается не в цикле, а если создавать в цикле и несколько?
ActionScript 3
1
2
3
4
5
for (i=1; i<=10; i++)
{
this.createTextField("my_txt" + i, 1, 100, 100, 300, 100);
arr.push(this["my_txt" + i]);
}
Вот так правильно? Просто у меня в итоге помещается в массив не экземпляр, а строка =(

Заранее спасибо!
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
30.01.2013, 12:23
ActionScript 3
1
2
3
4
5
6
7
8
9
10
var arr:Array=[];
for (i=0; i<=5; i++)
{
    this.createTextField("my_txt" + i, getNextHighestDepth(), 50*i, 0, 50, 20);
    arr.push(this["my_txt" + i]);
    this["my_txt" + i].border=true;
    this["my_txt" + i].text=""+i;
}
 
arr[2].text="change";
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
30.01.2013, 17:07  [ТС]
TanaTiX, Спасибо тебе большое! Такими темпами я за твои советы платить начну
0
30.01.2013, 17:51

Не по теме:

ichgo, мои советы по ас3 ценятся повыше ;)
Я уже об этом писал.

0
19 / 18 / 5
Регистрация: 01.02.2013
Сообщений: 171
01.02.2013, 22:58
Цитата Сообщение от ichgo Посмотреть сообщение
TanaTiX, я бы с радостью так и делал, но обьекты мне приходится генерировать в цикле, если есть какая-то возможность сохранить при этом ссылки на все созданные в цикле обьекты, подскажи как это сделать? (По возможности с кодом)

Я делаю вот так:
ActionScript 3
1
2
3
4
for (i = 0; i<=10; i++)
{
this.createTextField("bla"+i,,,,);
}
Я так понял,вы подписываете ваш текст на событие.В общем то,если вы объявили текта глобально класс будет выглядеть примерно так

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package
{
    import flash.display.MovieClip;
    import flash.text.TextField;
    import flash.events.MouseEvent;
    public class ClassText extends MovieClip
    {
        private var correctionText:String = "тыкни"
        private var myText:TextField = new TextField();
        public function ClassText()
        {
            myText.width = 20;
            myText.height = 20;
            myText.text = ""+correctionText;
            myText.border = true;
            addChild(myText);
            myText.addEventListener(MouseEvent.CLICK,funcClick);
        }
        
    }
}
 
 
public function funcClick(e:MouseEvent):void
{
    removeChild(myText);
    trace("молоток!");
}
Если же вы каждую итерацию создаете текст,то код будет выглядить так:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package
{
    import flash.display.MovieClip;
    import flash.text.TextField;
    import flash.events.MouseEvent;
    import flashx.textLayout.accessibility.TextAccImpl;
 
    public class ClassText extends MovieClip
    {
        private var correctionText:String = "тыкни"
        
        public function ClassText()
        {
            for(var i:int = 0 ; i<10 ; i++)
            {
                var myText:TextField = new TextField();
                myText.width = 20;
                myText.height = 20;
                myText.text = ""+correctionText;
                myText.border = true;
                addChild(myText);
                myText.addEventListener(MouseEvent.CLICK,funcClick);
            }
        }
    }
}
 
 
public function funcClick(e:MouseEvent):void
{
    var myText:TextField = e.currentTarget as TextField
    if(myText)
    {
        removeChild(myText);
        trace("молоток!");
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2013, 22:58
Помогаю со студенческими работами здесь

Отследить возникновение события из другого метода
При выполнении одного из методов мне необходимо знать, вызывалось ли одно из событий формы. Можно ли это сделать не прибегая к записи флага...

Отследить срабатывание события над элементом с заданным id
Здравствуйте. Есть форма &lt;form id=&quot;formfiles&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt; &lt;input id=&quot;file&quot;...

Возможно ли отследить выполнение события от компонента билдера ?
Такой вопрос: можно ли отследить выполнение события от компонента билдера ? Вот такого вида: if(asd()){} выполнять действия по...

Как отследить в JTable события Начала/Конца редактирования ячейки?
Добрый день. Как отследить в JTable события Начала/Конца редактированя ячейки??? В CellEditor вроде есть что-то похожее, но начала...

События - не удается присоединить обработчик
Напишите класс “Ведмедица”. У которого есть событие, “Поговори с медведем”. Чтобы представить поведение медведя, необходимо реализовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru