Показать сообщение отдельно
Старый 25.09.2006, 00:47
afarber вне форума Посмотреть профиль Отправить личное сообщение для afarber Посетить домашнюю страницу afarber Найти все сообщения от afarber
  № 3  
Ответить с цитированием
afarber
 
Аватар для afarber

Регистрация: May 2006
Адрес: Germany
Сообщений: 74
Цитата:
Сообщение от silin
а фокус-то до кнопок не доходит, когда ты проверяешь..
имхо проще/надежней хиттестом смотреть:
А-а спасибо, я не сообразил про фокус (а до TextField доходит, странно...)

Я еще немного подумал и сделал немного по другому - с onRelease и Delegate:

Код:
import mx.utils.Delegate;

class Chat extends MovieClip {
	private var field_txt:TextField;
	private var area_txt:TextField;
	private var up_btn:Button;
	private var down_btn:Button;
			
	public function Chat() {
		field_txt.maxChars = 1024;
		// will implement wheel scrolling myself
		this['mouseWheelEnabled'] = false;
		Key.addListener(this);
		Mouse.addListener(this);

		up_btn.onRelease = Delegate.create(this, scrollUp);
		down_btn.onRelease = Delegate.create(this, scrollDown);
		
		updateButtons();
	}

	public function onKeyDown() {
		if (Key.getCode() == Key.ENTER &&
		    field_txt.text != '' &&
		    Selection.getFocus() == targetPath(field_txt)) {
			setText(getText());
			Selection.setFocus(field_txt);
	  	}
	}
	
	public function scrollUp() {
		area_txt.scroll--;
		updateButtons();
	}
	
	public function scrollDown() {
		area_txt.scroll++;
		updateButtons();
	}

	public function onMouseWheel(lines:Number) {
		area_txt.scroll -= lines;
		updateButtons();
	}
	
	public function getText():String {
		var str:String = field_txt.text;
      		field_txt.text = '';
		return str;
	}
	
	public function setText(str:String) {
		area_txt.scroll = area_txt.maxscroll;
		area_txt.text += newline + str;
		updateButtons();
	}
	
	private function updateButtons():Void {
		up_btn._visible   = (area_txt.scroll > 1 ? true : false);
		down_btn._visible = (area_txt.scroll < area_txt.maxscroll ? true : false);
	}
}
Теперь кнопки вверх/вниз заработали как я хотел,
а вот мышкино колесико (onMouseWheel) все еще
не работает... Подскажите как исправить?

Спасибо
Алекс
Вложения
Тип файла: zip Chat.zip (32.4 Кб, 37 просмотров)