Показать сообщение отдельно
Старый 06.03.2008, 15:34
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
import mx.transitions.Transition;
import mx.transitions.TransitionManager;
import flash.filters.ColorMatrixFilter;
class mx.transitions.Sepia extends Transition {
	public var type:Object = Sepia;
	public var className:String = "Sepia";
	private var myColorMatrix_filter:ColorMatrixFilter;
	private var __tgt:MovieClip;
	private var __tint:Number = 0x000000;
	private var __to:Object = {};
	function Sepia(content:MovieClip, transParams:Object, manager:TransitionManager) {
		this.init(content, transParams, manager);
	}
	function init(content:MovieClip, transParams:Object, manager:TransitionManager):Void {
		super.init(content, transParams, manager);
		this.myColorMatrix_filter = new ColorMatrixFilter();
		this.__tgt = content;
		this.__tint = transParams.tint;
		this.__to = toRGB(this.__tint);
	}
	private function _render(p:Number):Void {
		var rc:Number = 0.3086;
		var gc:Number = 0.6094;
		var bc:Number = 0.0820;
		var myElements_array:Array = [1-p*(1-rc)+this.__to._r*p, p*gc, p*bc, 0, 0, 
									   p*rc, 1-p*(1-gc)+this.__to._g*p, p*bc, 0, 0, 
									   p*rc, p*gc, 1-p*(1-bc)+this.__to._b*p, 0, 0, 
									   0, 0, 0, 1, 0];
		this.myColorMatrix_filter = new ColorMatrixFilter(myElements_array);
		this.__tgt.filters = [myColorMatrix_filter];
	}
	private function toRGB(_num:Number):Object {
		var c_obj:Object = {_r:((_num >> 16) & 0xff)/255, _g:((_num >> 8) & 0xff)/255, _b:(_num & 0xff)/255};
		return c_obj;
	}
	public function toString():String {
		return "[Sepia Transition]";
	}
}
Древность какая-то, ну так, для коллекции

Код:
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.Rectangle;
import mx.transitions.Transition;
import mx.transitions.TransitionManager;
import flash.display.BitmapData;
import flash.filters.DisplacementMapFilter;
//
class mx.transitions.Wobble extends Transition {
	
	public var type:Object = Wobble;
	public var className:String = "Wobble";
	
	private var __tgt:MovieClip;
	private var __seed:Number = 0;
	private var __bmp:BitmapData;
	private var __acceleration:Number = 10;
	private var __msk:MovieClip;
	private var __flt:DisplacementMapFilter;
	
	function Wobble (content:MovieClip, transParams:Object, manager:TransitionManager) {
		this.init(content, transParams, manager);
	}
	function init(content:MovieClip, transParams:Object, manager:TransitionManager):Void {
		trace('started');
		super.init(content, transParams, manager);
		this.__tgt = content;
		this.__bmp = new BitmapData(content._width, content._height, true, 0x00ffffff);
		this.__bmp.perlinNoise(0, 10, 1, Math.floor(Math.random()*100), false, true, 1, true, null);
	}
	private function _render(p:Number):Void {
		this.__seed += this.__acceleration;
		if (this.__seed > this.__bmp.width/4 || this.__seed < -this.__bmp.width/4) {
			this.__acceleration*=-1;
		}
		var p0:Point = new Point(Math.floor((content._width - this.__bmp.width) / 2), -p);
		var scale:Number=this.__seed*p;
		var displMap = new DisplacementMapFilter(this.__bmp, p0, 1, 0, scale, 0, "wrap");
		content.filters=[displMap];
	}
	public function toString():String {
		return "[Wobble Transition]";
	}
}
И снова Silin %)
Код:
import mx.transitions.Transition;
import mx.transitions.TransitionManager;
import mx.transitions.rendering.*;
import mx.transitions.easing.Strong;

class mx.transitions.StainedGlass extends Transition {
	public var type:Object = StainedGlass;
	public var className:String = "StainedGlass";
	
	private var __map:Map;
	
	function StainedGlass(content:MovieClip, transParams:Object, manager:TransitionManager) {
		this.init(content, transParams, manager);
	}
	function init(content:MovieClip, transParams:Object, manager:TransitionManager):Void {
		transParams.easing = Strong.easeIn;
		super.init(content, transParams, manager);
		super.TWN.FPS = 12;
		this.__map = new Map(content, content._width, content._height);
	}
	private function _render(p:Number):Void {
		this.__map.__draw(p);
		if (content._visible) {
			content._visible = false;
		}
	}
	public function cleanUp():Void {
		this.content._visible = true;
		super.cleanUp();
		this.__map.__remove();
	}
	
	public function toString():String {
		return "[StainedGlass Transition]";
	}
}
Это безумная попытка сделать анимированый фильтр типа stained glass... дико тормозная, так и оставил недоделав =( Но мало ли... мож какие идеи будут
rendering.zip В аттаче нужные ей классы
__________________
Hell is the possibility of sanity