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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.01.2007, 01:24
JaLav вне форума Посмотреть профиль Отправить личное сообщение для JaLav Посетить домашнюю страницу JaLav Найти все сообщения от JaLav
  № 1  
Ответить с цитированием
JaLav

Регистрация: Jan 2007
Сообщений: 213
По умолчанию ComboBox и Alert

Хочу, чтоб, когда выбираю первый элемент Комбобокса, появлялось окошко Алерт с кнопкой ОК.
Почему выдает ошибку типа "безконечная рекурсия"?
Код:
import mx.controls.Alert;
	var cbListener:Object = new Object();
	combo.addItem ({label:"none", data:0});
	combo.addItem ({label:"a", data:1});
	cbListener.change = function(event_obj:Object) 
	{
	var ob=event_obj.target.selectedItem.data;
		if(ob==0)
		{
		Alert.show("...must be >0","Warning", Alert.OK);
		}
	};
		combo.addEventListener("change", cbListener);

Старый 30.01.2007, 10:27
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 2  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
не поверите, вставил, все работает...
и ошибок тут не нахожу...
__________________
"We Are The Champions My Friends!" Queen

Старый 30.01.2007, 10:28
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 3  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
чертовщина какая то, если вызвать Alert из обработчика событий получается глюк.

Код:
import mx.controls.Alert;
import mx.controls.ComboBox;

var interval:Number;

function onComboBoxChange(event:Object):Void
{
	var target:ComboBox = ComboBox(event.target);
	
	if(!Number(target.selectedItem.data))
	{
		interval = setInterval(showWarning, 1);
	}
}

function showWarning():Void
{
	Alert.show("Data is not big enough", "Warning");
	clearInterval(interval);
}

comboBox.addItem({label:"Hello", data:0});
comboBox.addItem({label:"World", data:1});
comboBox.addEventListener("change", onComboBoxChange);
Не очень опрятно, но работает...
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 30.01.2007, 10:31
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Corc какая версия флэша у тебя?

У меня восьмерка, компилю под восьмерку.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 30.01.2007, 10:35
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 5  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
а ну я пробовал под МХ запустить,
восьмерка есь но щаз МХ открыт

да в 8 мне вот такую загогулину выдало:
"Failed to create a new alert, probably because there is no Alert in the Library"
хотя он там есть
__________________
"We Are The Champions My Friends!" Queen


Последний раз редактировалось CorC; 30.01.2007 в 10:38.
Старый 30.01.2007, 10:37
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 6  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
наверное в восьмерке они компоненты решили пропатчить, и добавили багов.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 30.01.2007, 11:36
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Почему бы не залезть внутрь компонентов и посмотреть?

Старый 30.01.2007, 12:14
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 8  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Цитата:
Почему бы не залезть внутрь компонентов и посмотреть?
Типа проанализировать код, локализовать ошибку, написатьзаплатку?

только когда мне заплатят=)
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 30.01.2007, 13:44
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Не, зачем, просто проанализировать и узнать, откуда она. А секрет продавать

Старый 30.01.2007, 14:15
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 10  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Кстати глюк присутствует только в ComboBox.

я попробывал Button, List они работают нормально.

Ошибка должно быть в этом методе.

Код:
//mx.controls.ComboBox
function _changeHandler(obj) : Void
	{
		var o = this.owner; // 'this' is the dropdown; 'o' is the combobox
 		var prevValue = o.selectedIndex;
		obj.target = o;

		if (this == this.owner.text_mc)
		{
			o.selectedIndex = undefined;
			o.dispatchChangeEvent(obj,-1,-2); // Force a change event to be dispatched
		}
		else
		{
			// This assignment will also assign the label to the text field. See setSelectedIndex().
			o.selectedIndex = selectedIndex;
			// If this was generated by the dropdown as a result of a keystroke, it is
			// likely a Page-Up or Page-Down, or Arrow-Up or Arrow-Down. If the selection
			// changes due to a keystroke, we leave the dropdown displayed. If it changes
			// as a result of a mouse selection, we close the dropdown.
 			if (!o._showingDropdown)
 			{
 				o.dispatchChangeEvent(obj,prevValue, o.selectedIndex);
 			} else if (!o.bInKeyDown) {
				o.displayDropdown(false);
 				//o.dispatchChangeEvent(obj,-1, o.selectedIndex);
 				
 			}
		}
		//o.dispatchEvent(obj);
	}
или тут

Код:
function dispatchChangeEvent(obj,prevValue,newValue)
 	{
 		var eventObj:Object;
 		//trace(obj.type + "   "  + prevValue + "    " + newValue);
 		if (prevValue != newValue)
 		{
 			if (obj != undefined && obj.type == "change")
 			{
 				eventObj = obj;
 			} 
 			else 
 			{
 				eventObj = {type:"change"};
 			}
 			
 			//eventObj.prevValue = prevValue;
 			//eventObj.newValue = newValue;
 			
 			dispatchEvent(eventObj);
 		}
 		
 	}
копатся дальше пока лень.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

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

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


 


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


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