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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.02.2007, 23:05
lowka вне форума Посмотреть профиль Отправить личное сообщение для lowka Найти все сообщения от lowka
  № 11  
Ответить с цитированием
lowka

Регистрация: Sep 2006
Сообщений: 256
Я бы сделал так (доработано):
Код:
class Output {	
	private static var container:MovieClip;
	private static var textField:TextField;
	
	// минимальная ширина окна.
	private static var MIN_WIDTH:Number = 100;
	// минимальная высота окна.
	private static var MIN_HEIGHT:Number = 100;
	
	/**
	* Создание окна.
	* @param	target	контейнер в котором будет создано окно.
	* @param	depth   глубина.
	* @param	width   ширина окна.
	* @param	height  высота окна.
	*/
	public static function create(target:MovieClip, depth:Number, width:Number, height:Number):Void {
		if(!MovieClip(target) || Output.container.getDepth()){//доработано.
			return;
		}
		Output.container = target.createEmptyMovieClip("__output", !isNaN(depth)? depth: 0);
		
		width = !isNaN(width) && width > Output.MIN_WIDTH ? width: Output.MIN_WIDTH;
		height = !isNaN(height) && height > Output.MIN_HEIGHT ? height: Output.MIN_HEIGHT;
		
		Output.textField = Output.container.createTextField("__text", 0, 0, 0, width, height);
		Output.textField.background = true;
		Output.textField.border = true;
		Output.textField.selectable = false;
		Output.textField.multiline = true; //добавлено.
		
		Output.hide();
	}
	
	/**
	* Вывод сообщения. 
	* @param	message сообщение.
	*/
	public static function showMessage(message:String):Void {
		if(!Output.container){
			return;
		}
		Output.toCenter();
		
		Output.container._visible = true;
		Output.textField.text = message;
	}
	
	/**
	* Скрытие окна.
	*/
	public static function hide():Void {
		if(!Output.container){
			return;
		}
		Output.container._visible = false;
	}
	
	/**
	* Перемещение окна в центр экрана.
	*/
	private static function toCenter():Void {
		var point:Object = {x: (Stage.width - Output.container._width)/2,
							y: (Stage.height - Output.container._height)/2};
		
		Output.container.globalToLocal(point);
		Output.container._x = point.x;
		Output.container._y = point.y;
	
	}
}
Создаем окно:
Код:
import Output;

var outputDepth:Number = 1000;
var outputWidth:Number = 300;
var outputHeight:Number = 200;

Output.create(this, outputDepth, outputWidth, outputHeight);
Вызываем:
Код:
Output.showMessage("Hello!");


Последний раз редактировалось lowka; 06.02.2007 в 01:14.
Старый 05.02.2007, 23:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 12  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Наш подход

Только может возникнуть проблема такого рода, что при повторном тесте ролика (второй раз Ctrl+Enter) твой вывод работать не будет. А все потому что есть баг, при котором в этом случае статические переменные не обнуляются, а мувика Output.container не существует, но при этом проверка if (Output.container) проходит. В этом случае нужно проверить наличеие у container какого-нибудь метода от MovieClip, например getDepth. Если такового нет, то создавать мувик заново.

Старый 05.02.2007, 23:59
lowka вне форума Посмотреть профиль Отправить личное сообщение для lowka Найти все сообщения от lowka
  № 13  
Ответить с цитированием
lowka

Регистрация: Sep 2006
Сообщений: 256
Спасибо. Буду знать.

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

Регистрация: Sep 2002
Сообщений: 30,787
http://dev.etcs.ru/blog/as2/ru/etcs/effects/texttween/ например, здесь это реализовано.

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

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

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


 


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


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