Показать сообщение отдельно
Старый 16.07.2009, 18:37
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 19  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Поизучайте. На практике не применял. Может содержать ошибки.


Код AS1/AS2:
/**
 *  @author				Dimarik
 *  @version			1.0
 *  @langversion		2.0
 *  @playerversion		7.0
 *
 *  Мега хрень
 *
 */
 
class MyWords {
 
	//-------------------------------------------------------------------------
	//
	//    Class's variables
	//
	//-------------------------------------------------------------------------
 
	public static var offsetX:			Number = 10;
 
	public static var offsetY:			Number = 10;
 
 
	private static var instanceCounter:	Number = 0;
 
	//-------------------------------------------------------------------------
	//
	//    Constructor
	//
	//-------------------------------------------------------------------------
 
	public function MyWords() {
		super();
		instanceCounter++;
	}
 
	//-------------------------------------------------------------------------
	//
	//    Properties
	//
	//-------------------------------------------------------------------------
 
	//---------------------------------
	//  parent
	//---------------------------------
	private var $parent:	MovieClip;
 
	public function set parent(value:MovieClip):Void {
		if (this.$parent == value) return;
		this.$parent = value || null;
 
		// Рендерим, если есть где и если есть что
		if (this.$parent && this._data) this.update();
		else this.clear();
	}
 
	public function get parent():MovieClip {
		return this.$parent || null;
	}
 
	//---------------------------------
	//  data
	//---------------------------------
	private var _data:		String = '';
 
	public function set data(value:String):Void {
		if (this._data == value) return;
 
		// Рендерим, если есть где и если есть что
		if (this.$parent && this._data) this.update();
		else this.clear();
	}
 
	public function get data():String {
		return this._data;
	}
 
	//-------------------------------------------------------------------------
	//
	//    Private variables
	//
	//-------------------------------------------------------------------------
 
	private var _container:	MovieClip;
 
	//-------------------------------------------------------------------------
	//
	//    Private methods
	//
	//-------------------------------------------------------------------------
 
	private function clear() {
		if (!this._container) return; // Уже очищали
 
		// Удаляем все текстовые поля из контейнера
		var object:	Object;
 
		for (var j:String in this._container) {
			object = this._container[i];
			if (object instanceof TextField) TextField(object).removeTextField();
		}
 
		this._container.removeMovieClip();
		this._container = null;
	}
 
	private function update() {
		this._container = this.$parent.createEmptyMovieClip(
				"container$" + instanceCounter,
				 this.$parent.getNextHighestDepth()
		);
 
		var array:		Array = this._data.split("");
 
		var dx:			Number = offsetX;
		var dy:			Number = offsetY;
 
		var textField:	TextField;
 
		for (var i = 0; i < array.length; i++) {
			dx += 15;
 
			textField = this._container.createTextField(String(i), i, dx, dy, 10, 16);
			textField.autoSize = true;
			textField.selectable = false;
			textField.text = array[i];
 
			if ( dx > 300) {
				dx = 10;
				dy += 15;
			}
		}
	}
 
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 16.07.2009 в 18:40.