![]() |
|
||||||||||
|
|||||
|
Регистрация: 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); Последний раз редактировалось lowka; 06.02.2007 в 01:14. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Наш подход
![]() Только может возникнуть проблема такого рода, что при повторном тесте ролика (второй раз Ctrl+Enter) твой вывод работать не будет. А все потому что есть баг, при котором в этом случае статические переменные не обнуляются, а мувика Output.container не существует, но при этом проверка if (Output.container) проходит. В этом случае нужно проверить наличеие у container какого-нибудь метода от MovieClip, например getDepth. Если такового нет, то создавать мувик заново. |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 256
|
Спасибо. Буду знать.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
http://dev.etcs.ru/blog/as2/ru/etcs/effects/texttween/ например, здесь это реализовано.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|