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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.04.2008, 19:31
trigger вне форума Посмотреть профиль Отправить личное сообщение для trigger Найти все сообщения от trigger
  № 1  
Ответить с цитированием
trigger
[+4 16.10.08]
 
Аватар для trigger

Регистрация: Sep 2002
Адрес: Киев
Сообщений: 140
По умолчанию Окно внутри флеша

Пытаюсь писать класс всплывающего окна на флеше. Окно должно содержать картинки и текст. Не знаю как сделать класс универсальным чтобы окно было резиновым. Посоветуйте как красиво разместить блоки картинок и текста. Знаю, что оконное API довольно изощренное (например Java 2D), надо бы чего-нибуть попроще - предусмотреть наличие нескольких блоков картинок и текста.

Пока что решил весь контент пихать в одно поле ввиде html.

Вот заготовка:
Код:
import flash.geom.*

 

class Popup extends MovieClip
{
	var my_sp, decrID, incrID, title, my_txt, my_fmt, html_text, close;
	function Popup()
	{
		super();
		this._visible = false;
		this._alpha = 0;
	
		title = createEmptyMovieClip("title", this.getNextHighestDepth());
		with(title)
		{
			//beginFill(0x0000FF,30);
			
			colors = [0x0000FF,0x70E2FE ];
    		fillType = "linear";
    		alphas = [100,100 ];
    		ratios = [0, 0xFF];
    		spreadMethod = "pad";
    		interpolationMethod = "linearRGB";
    		focalPointRatio = 0.9;
    		matrix = new Matrix();
    		matrix.createGradientBox(400, 200);
    		beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio);
			
			
			
			moveTo(1,0);
			lineTo(this._width,0);
			lineTo(this._width,22);
			lineTo(1,22);
			endFill();
			
		}
		
		close = createEmptyMovieClip("close", getNextHighestDepth());
		with(close)
		{
			beginFill(0x9D9D9D,50);
			moveTo(this._width-22,2);
			lineTo(this._width-2,2);
			lineTo(this._width-2,20);
			lineTo(this._width-22,20);
			endFill();
			
			lineStyle(2, 0x000000, 100, true, "none", "round", "miter", 1);
			moveTo(this._width-18,6);
			lineTo(this._width-6,18);
			moveTo(this._width-18,18);
			lineTo(this._width-6,6);
		}
		
		close.onPress = mx.utils.Delegate.create(this, onClose);
		close.onRollOver = mx.utils.Delegate.create(this, function(){close.lineStyle(2, 0x00FF00, 100, true, "none", "round", "miter", 1);});
		title.onPress = mx.utils.Delegate.create(this, _startDrag);
		title.onRelease = mx.utils.Delegate.create(this, _stopDrag);
	
		
		my_sp=createEmptyMovieClip("my_sp", this.getNextHighestDepth());
		my_txt=this.my_sp.createTextField("my_txt", 2, 10, 40, this._width-20, this._height-50);
		my_fmt = new TextFormat();
		my_fmt.color = 0xFFFFFF;
		my_fmt.underline = false;
		my_fmt.font = "arial";
		my_fmt.hscroll = true;
		my_fmt.scroll = true;
		
		
		my_txt.multiline = true;
		my_txt.wordWrap = true;
		my_txt.autoSize = "left";
		my_txt.antiAliasType = "advanced";
		my_txt.html = true;
		my_txt.htmlText = html_text;
		my_txt.backgroundColor=0xCCccCC;
		my_txt.background=false;
		my_txt.setTextFormat(my_fmt);
	}
	
	public function chAlpha()
	{
		//trace(this+":"+my_sp._alpha);
		if(this._alpha >= 100)
		{
			clearInterval(decrID);
            decrID = setInterval(this, "alphaDecr", 50);
		}
		if(this._alpha <= 0)
		{
			clearInterval(incrID);
            incrID = setInterval(this, "alphaIncr", 50);
		}
	}
	
 	private function _startDrag()
	{
		this.startDrag();
	}
	
	private function _stopDrag()
	{
		this.stopDrag();
	}
	
	private function onClose()
	{
		chAlpha();
	}
	
	private function alphaDecr()
	{
		if(this._alpha<=0)
		{
			clearInterval(decrID); 
			this._visible=false; 
		} else
		this._alpha-=5;
	}	
	
	private function alphaIncr()
	{
		if(this._alpha>=100) clearInterval(incrID);
		else this._alpha+=5;
	}
}
Использую так
attachMovie("PopUp", "pop", 1, {html_text:"<b>Hello</b><br>test!"});


Последний раз редактировалось trigger; 25.04.2008 в 16:06.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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