Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-10-2006, 08:38   #1 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
[stuff]text firewall

hallo zusammen,

und weil urlaub ohne scripten garnicht geht, hier direkt mal ein
kleiner texteffekt - "text firewall".

das ganze ohne perlinNoise sondern über ein palettenMapping
...was von der performance her bei mir echt mehr hergibt, und
bei euch? (FEEDBACK erwünscht!!!)

Viel Spaß beim ansehen & modifizieren...

ansehen

Variation davon:
ansehen

und runter damit


Code:


/////////////////////////////////////////////////////
//  text firewall
//	author : frank reitberger
//	site : http://www.dasprinzip.com
//  copyright 2006
/////////////////////////////////////////////////////


// --------------------------------------------------------------------------------------------------


stop();


// --------------------------------------------------------------------------------------------------

///////////////////////////////////
// import flash filter classes
///////////////////////////////////


import flash.display.BitmapData;
import flash.filters.*;
import flash.geom.*;



// --------------------------------------------------------------------------------------------------

///////////////////////////////////
// setup flow field global vars
///////////////////////////////////


var flt = new flash.filters.BlurFilter(4, 16);	

var colRange:Number = 256;
var colArr:Array = new Array(colRange);
var colMap:Array = new Array(colRange);

var n:Number = 1;
var txtPointer:Number = 0;
var txtArr:Array = new Array("PWD´s","TEXT","FIREWALL");


_quality = "LOW";
this._lockroot = true;



// --------------------------------------------------------------------------------------------------

///////////////////////////////////
// configure canvas
///////////////////////////////////


function initStage() {
	
	
	/////////////////////
	// setup efx stage
	
	_root.efxMapping = new BitmapData(300, 300, false, 0);
	_root.efxStage = new BitmapData(300, 256, false, 0);
	
	_root.createEmptyMovieClip("txt_mc", _root.getNextHighestDepth());
	_root["txt_mc"].createTextField("txt", this.getNextHighestDepth(), 0, 0, 300, 50);
	
	_root.createEmptyMovieClip("efxClip", _root.getNextHighestDepth());
	_root["efxClip"].attachBitmap(_root.efxStage, this.getNextHighestDepth());
	
	_root["txtHeadline"].swapDepths(_root.getNextHighestDepth());
	_root["txtInput"].swapDepths(_root.getNextHighestDepth());
	

	
	
	
	/////////////////////
	// paint efx
	
	var i:Number = 0;
	while (i < colRange) {
		colArr[i] = 0;
		i++;
	}
	
	var i:Number = 0;
	while (i < 256) {
		colMap[i] = rgbRange(i / 3, 255, Math.min(255, i * 2));
		i++;
	}
	
	/////////////////////
	// paint efx	
	
	paint();
}



// --------------------------------------------------------------------------------------------------

///////////////////////////////////
// setup color range
///////////////////////////////////


function rgbRange(h, sl, l) {
    
	var setR,setG,setB;
    var r = h / 255;
    var g = sl / 255;
    var b = l / 255;
    
	var tmpCol = b <= 0.500000 ? (b * (1 + g)) : (b + g - b * g);
    
	if (tmpCol <= 0) {
    
		var setR:Number = 0;
        var setG:Number = 0;
        var setB:Number = 0;
    
	} else {
       
	   	var colB:Number = b + b - tmpCol;
        var bCache:Number = (tmpCol - colB) / tmpCol;
		var r:Number = r * 26;
        var colValue:Number = Math.floor(r);
        var rCache:Number = r - colValue;
        var gCache:Number = tmpCol * bCache * rCache;
        var colG:Number = colB + gCache;
        var colR:Number = tmpCol - gCache;
		
        
		switch (colValue)
        {
            case 0:
            {
                setR = tmpCol;
                setG = colG;
                setB = colB;
                break;
            } 
            case 1:
            {
                setR = colR;
                setG = tmpCol;
                setB = colB;
                break;
            } 
            case 2:
            {
                setR = colB;
                setG = tmpCol;
                setB = colG;
                break;
            } 
            case 3:
            {
                setR = colB;
                setG = colR;
                setB = tmpCol;
                break;
            } 
            case 4:
            {
                setR = colG;
                setG = colB;
                setB = tmpCol;
                break;
            } 
            case 5:
            {
                setR = tmpCol;
                setG = colB;
                setB = colR;
                break;
            } 
        }
    }
	
    return(setR * 255 << 16 | setG * 255 << 8 | setB * 255);

}



// --------------------------------------------------------------------------------------------------

///////////////////////////////////
// paint flame thrower
///////////////////////////////////


function paint() {
	
	_root.onEnterFrame = function () {
   		
		var i:Number = 0;
    	
		while (i < 2) {
		
			_root["efxMapping"].applyFilter(_root["efxMapping"], new flash.geom.Rectangle(0, 0, 300, 300), new flash.geom.Point(0, -2), flt);
			
      		var j:Number = 0;
			while (j < 8) {
				
				_root["efxMapping"].fillRect(new flash.geom.Rectangle(Math.random() * 280, 289, 20, 3), 16777215);
				
				if (n++ % 256 == 0) {
					
					var geomMatrix = new flash.geom.Matrix();
					geomMatrix.translate(40, 196);
					
					_root["txt_mc"].txt.text = txtArr[txtPointer];
					_root["txt_mc"].txt.setTextFormat(new TextFormat("Arial", 44, 16777215));
					_root["efxMapping"].draw(_root["txt_mc"], geomMatrix);
					txtPointer++;
					
					if (txtPointer >= txtArr.length) {
						txtPointer = 0;
					}
				}		
				
				j++;
			}		
			
			i++;
			
		}
		
		_root.efxStage.paletteMap(_root["efxMapping"], new flash.geom.Rectangle(0, 20, 300, 256), new flash.geom.Point(0, 0), colMap, colArr, colArr, null);
	
	}
	
	

}



// --------------------------------------------------------------------------------------------------

///////////////////////////////////
// setup textfield listener
///////////////////////////////////


var lookForInput:Object = new Object();

lookForInput.enter= function() {
	
	_root["txtArr"].push(_root["txtInput"].text);
	_root["txtInput"].text = "";
	
	return;
}

this["txtInput"].addEventListener("enter", lookForInput);


// --------------------------------------------------------------------------------------------------

///////////////////////////////////
// init
///////////////////////////////////

initStage();
pwd
__________________
Blog/Lab Xing

Geändert von pwdVergesser (09-10-2006 um 08:40 Uhr)
pwdVergesser ist offline   Mit Zitat antworten
Alt 09-10-2006, 08:58   #2 (permalink)
\x3a\x6f\x29
 
Benutzerbild von [je]
 
Registriert seit: Apr 2004
Ort: paris
Beiträge: 806
Schon mal wo gesehen. Trotzdem schön und performant. Ich hoffe du hast es trotzdem selbst gemacht.
__________________
joa ebert
http://blog.joa-ebert.com/ - http://www.joa-ebert.com/
[je] ist offline   Mit Zitat antworten
Alt 09-10-2006, 09:08   #3 (permalink)
habs vergessen
 
Benutzerbild von pwdVergesser
 
Registriert seit: Feb 2006
Beiträge: 990
Si - ist eine Weiterentwicklung samt umdecken vom "Flamming Text-Thrower":

ansehen



pwd
__________________
Blog/Lab Xing
pwdVergesser ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele