Показать сообщение отдельно
Старый 07.03.2007, 17:04
ToXICus вне форума Посмотреть профиль Отправить личное сообщение для ToXICus Посетить домашнюю страницу ToXICus Найти все сообщения от ToXICus
  № 1  
ToXICus
 
Аватар для ToXICus

Регистрация: May 2006
Адрес: налево от Лондона
Сообщений: 447
Отправить сообщение для ToXICus с помощью ICQ
Attention Silin's GlassWin Class. как его запускать?

Всем доброго времени суток. На сайте уважаемого Силина нашел клас, котрый позволяет делать некую полупрозрачную матовую рамку, напоминающую потертое стекло. Но не могу разобраться как это работает :-( Подскажите, кто знает.
Вот код взятый с его сайта http://www.silin.fatal.ru :
Код:
import flash.filters.*;
import flash.geom.*;
import flash.display.*;
class GlassWin extends MovieClip {
	var mouseDown:Boolean;
	var mouseX:Number;
	var mouseY:Number;
	var alphaScreen:MovieClip;
	var blurScreen:MovieClip;
	var blurBitmap:BitmapData;
	var w:Number;
	var h:Number;
	var intervalID;
	public function GlassWin() {
		w = Math.floor(_width);
		h = Math.floor(_height);
		var lowDepth = 0;
		for (var i in this) {
			//всех поднимем на 2, чтоб освободить место для скринов
			if (this[i].getDepth() < lowDepth) {
				lowDepth = this[i].getDepth();
			}
			_root.swapDepths.call(this[i], this[i].getDepth() + 2);
		}
		//////////////
		var bounds = getBounds(this);
		alphaScreen = this.createEmptyMovieClip("alphaScreen", lowDepth + 1);
		blurScreen = this.createEmptyMovieClip("blurScreen", lowDepth);
		alphaScreen._x = blurScreen._x = bounds.xMin;
		alphaScreen._y = blurScreen._y = bounds.yMin;
		alphaScreen.beginFill(0xFFFFFF, 35);
		alphaScreen.lineTo(w, 0);
		alphaScreen.lineTo(w, h);
		alphaScreen.lineTo(0, h);
		alphaScreen.endFill();
		////////
		blurBitmap = new BitmapData(w, h);
		blurScreen.attachBitmap(blurBitmap, 0);
		blurScreen.filters = [new BlurFilter(10, 10)];
		getScreen();
		intervalID = setInterval(this, "render", 40);
	}
	function onMouseDown() {
		if (!hitTest(_root._xmouse, _root._ymouse)) {
			return;
		}
		mouseX = _xmouse;
		mouseY = _ymouse;
		mouseDown = true;
	}
	function onMouseUp() {
		mouseDown = false;
	}
	function render() {
		if (mouseDown) {
			_x += _xmouse - mouseX;
			_y += _ymouse - mouseY;
			mouseX = _xmouse;
			mouseY = _ymouse;
		}
		getScreen();
		updateAfterEvent();
	}
	function getScreen() {
		var mtrx = new Matrix();
		mtrx.tx = -(_x + blurScreen._x);
		mtrx.ty = -(_y + blurScreen._y);
		_visible = false;
		blurBitmap.draw(_root, mtrx);
		_visible = true;
	}
}
Ответ уже найден, поэтому, простите.
__________________
Чтоб понять, что ничего не знаешь - учись.


Последний раз редактировалось ToXICus; 07.03.2007 в 17:20.