Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.05.2013, 14:38
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 1  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
По умолчанию Изменить имя TextField программно

Народ, есть код:
Код AS3:
analogTXT.text = analogTXT.text.substr(0, analogTXT.text.length - 1);
как можно программно изменить имя текстфилда analogTXT?

пробовал так:
Код AS3:
var nTXT:String = "NewTXT";
 
(nTXT).text = (nTXT).text.substr(0, (nTXT).text.length - 1);
Что то не выходит.
Возможно ли это и как?

Старый 27.05.2013, 14:44
ProcXel.A вне форума Посмотреть профиль Найти все сообщения от ProcXel.A
  № 2  
Ответить с цитированием
ProcXel.A
Banned
[+1 27.05.13]

Регистрация: May 2013
Сообщений: 60
Непонятно, зачем тебе это.)))) Но это можно сделать так:
Код AS3:
var new_name:TextField = analogTXT;
new_name.text = new_name.text.substr(0, new_name.text.length - 1);
"analogTXT" - это имя ссылки. Соответственно, можно поменять ссылку текстового поля на любую другую.


Последний раз редактировалось ProcXel.A; 27.05.2013 в 15:15.
Старый 27.05.2013, 15:05
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 3  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
Огромное спасибо, то что нужно.

Добавлено через 24 минуты
а как поменять имя вызываемой функции checkA:
Код AS3:
button.addEventListener(MouseEvent.CLICK, checkA);
Добавлено через 29 минут
Если делаю так:
Код AS3:
var checkA:Function = NewFunc;
 
button.addEventListener(MouseEvent.CLICK, checkA);
Пишет ошибку, хотя функция NewFunc существует:
Код:
TypeError: Error #2007: Параметр listener не должен быть равен нулю.
	at flash.events::EventDispatcher/addEventListener()

Старый 27.05.2013, 15:43
ProcXel.A вне форума Посмотреть профиль Найти все сообщения от ProcXel.A
  № 4  
Ответить с цитированием
ProcXel.A
Banned
[+1 27.05.13]

Регистрация: May 2013
Сообщений: 60
Что ты там делаешь вообще?))))) Функцию можно просто переименовать и всё.) Зачем тебе новые имена всего подряд? Может, есть более разумное решение. Расскажи, чего ты пытаешься добиться?

Старый 27.05.2013, 15:52
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 5  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
Есть две функции и много слушателей которые при IF должны ссылаться либо на 1 функцию либо на 2.
Вот поэтому и надо изменить разом у всех слушателей имя функции при IF

Старый 27.05.2013, 15:59
ProcXel.A вне форума Посмотреть профиль Найти все сообщения от ProcXel.A
  № 6  
Ответить с цитированием
ProcXel.A
Banned
[+1 27.05.13]

Регистрация: May 2013
Сообщений: 60
Намного проще сделать что-нибудь типа такого:
Код AS3:
button1.addEventListener(MouseEvent.CLICK, Click);
button2.addEventListener(MouseEvent.CLICK, Click);
button3.addEventListener(MouseEvent.CLICK, Click);
button4.addEventListener(MouseEvent.CLICK, Click);
//Много слушателей...
function Click( e:MouseEvent ):void {
    if ( /*Условие.*/ ) {
        Func1();
    }
    else {
        Func2();
    }
}
function Func1():void {};
function Func2():void {};
То есть. В той функции, которая висит на слушателе, проверяешь условие и выполняешь нужную тебе функцию.

Старый 27.05.2013, 16:06
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 7  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
да, этот метод проще, но он не подходит.
Возможно ли как-нибудь изменить имя по-другому?

Старый 27.05.2013, 16:16
ProcXel.A вне форума Посмотреть профиль Найти все сообщения от ProcXel.A
  № 8  
Ответить с цитированием
ProcXel.A
Banned
[+1 27.05.13]

Регистрация: May 2013
Сообщений: 60
Немного теории.
Когда назначается слушатель методом
Код AS3:
addEventListener( MouseEvent.CLICK, Func );
То в слушатель передается не имя функции, а объект функции. Поэтому переназначить функцию слушателя вот так
Код AS3:
var Func:Function = NewFunc;
нельзя. В слушатель не добавится новая функция таким образом.

Если тебе нужно изменить функцию слушателя, то тебе нужно удалить старый слушатель и повесить новый.
Код AS3:
var action:Boolean = true;
btn.addEventListener( MouseEvent.CLICK, Click1 );
btn2.addEventListener( MouseEvent.CLICK, Change );
function Click1( e:MouseEvent ):void {
	trace( 1 );
}
function Click2( e:MouseEvent ):void {
	trace( 2 );
}
function Change( e:Event ) {
	if ( action == true ) {
		btn.removeEventListener( MouseEvent.CLICK, Click1 );
		btn.addEventListener( MouseEvent.CLICK, Click2 );
	}
	else {
		btn.removeEventListener( MouseEvent.CLICK, Click2 );
		btn.addEventListener( MouseEvent.CLICK, Click1 );
	}
	action = !action;
}


Последний раз редактировалось ProcXel.A; 27.05.2013 в 16:35.
Старый 27.05.2013, 16:58
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 9  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
а как удалить сразу всех нужных слушателей, чтобы не перечислять их по порядку?

Старый 27.05.2013, 17:05
ProcXel.A вне форума Посмотреть профиль Найти все сообщения от ProcXel.A
  № 10  
Ответить с цитированием
ProcXel.A
Banned
[+1 27.05.13]

Регистрация: May 2013
Сообщений: 60
Код AS3:
var objects:Array = [button1, button2, button3, button4, button5, button6];
for ( var i:int = 0; i < objects.length; ++i ) {
    objects[i].removeEventListener( MouseEvent.CLICK, Click1 );
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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