| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
| [stuff] flameable text-thrower
tach allerseits. hier mal wieder was zum spielen, testen und weiterverwursten. text schreiben, enter drücken, das ganze wird durch die flamme geschleudert. natürlich interessiert mich wie immer eure meinung... ansehen Code: /////////////////////////////////////////////////////
// flaming text-thrower
// 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 xDeplac:Number = 0;
var yDeplac:Number = 0;
var clipBlur:BlurFilter = new BlurFilter(10, 10, 2);
var txtBlur:BlurFilter = new BlurFilter(4, 4, 2);
var txtObj:Object = new Object({txt00:"D",txt01:"W",txt02:"P"});
var playTxt:Boolean = false;
var renderTxt:Boolean = true;
this["txtInput"].text = "PWD";
_quality = "LOW";
this._lockroot = true;
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// configure canvas
///////////////////////////////////
function initStage() {
/////////////////////
// setup efx stage
_root.efxStage = new BitmapData(_root["flameClip"]._width+80, _root["flameClip"]._height+50, false, 0x000000FF);
_root.createEmptyMovieClip("efxClip", _root.getNextHighestDepth());
_root["efxClip"].attachBitmap(_root.efxStage, _root.getNextHighestDepth());
_root["efxClip"]._visible = false;
/////////////////////
// setup txt stage
_root.txtStage = new BitmapData(150, 290, true, 0x000000FF);
_root.createEmptyMovieClip("txtClip", _root.getNextHighestDepth());
_root["txtClip"].attachBitmap(_root.txtStage, _root.getNextHighestDepth());
/////////////////////
// paint efx
paint();
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// paint flame thrower
///////////////////////////////////
function paint() {
var displacementMap = function() {
var filter:DisplacementMapFilter = new DisplacementMapFilter(_root.efxStage, new Point(0, 0), 1, 1, 35, 5, "clamp");
_root["flameClip"].filters = [clipBlur, filter];
if (_root.playTxt) {
_root["txtClip0"].filters = [txtBlur, filter];
}
}
var throwFlames = function() {
xDeplac += 0.5;
yDeplac += 10;
var point:Point = new flash.geom.Point(xDeplac, yDeplac);
_root["txtClip0"]._y -= 10;
if (_root.renderTxt) {
if (!_root.playTxt) {
for (var i in _root.txtObj) {
if (_root.txtObj[i] != "") {
duplicateMovieClip("_txtClip","txtClip0",_root.getNextHighestDepth());
_root["txtClip0"]._alpha = 100;
_root["txtClip0"].txt = _root.txtObj[i];
_root["txtClip0"]._x = 55;
_root["txtClip0"]._y = 240;
_root.txtCache = i;
_root.playTxt = true;
}
}
var count:Number = 0;
for (var i in _root.txtObj) {
if (_root.txtObj[i] != "") {
count++;
}
}
if (count == 0) {
_root.renderTxt = false;
}
}
if (_root["txtClip0"]._y < 0) {
_root.txtObj[_root.txtCache] = "";
delete _root.txtObj[_root.txtCache];
removeMovieClip(_root["txtClip0"]);
_root.playTxt = false;
}
}
_root["txt"].swapDepths(_root.getNextHighestDepth());
_root.efxStage.perlinNoise(30, 60, 2, 10, false, true, 8, true, point);
displacementMap();
}
_root.onEnterFrame = throwFlames;
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// setup textfield listener
///////////////////////////////////
var lookForInput:Object = new Object();
lookForInput.enter= function() {
for (var i:Number = 0; i < _root["txtInput"].length; i++) {
var getChar:String = _root["txtInput"].text.charAt(i).toUpperCase();
_root.txtObj["txt0" + i] = getChar;
}
_root.renderTxt = true;
return;
}
this["txtInput"].addEventListener("enter", lookForInput);
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// init
///////////////////////////////////
initStage(); pwd |
| | |
| | #2 (permalink) |
| no guts no glory Registriert seit: May 2004 Ort: Nordhorn
Beiträge: 7.998
|
nice ... gut gemacht
__________________ Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke. 'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.' |
| | |
| | #5 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
Hübsch! Erinnert mich irgendwie an Harry Potter...
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
| | #6 (permalink) |
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
|
na danke fürs lob! ![]() ich wollte die buchstaben eigentlich als unsichtbare pixel auf das bitmap der flamme rechnen, ich denke das würde sogar noch viel performance herauskitzeln, aber dazu bin ich derzeit noch zu dumm (...sprich das hat nicht so ganz geklappt!) ![]() pwd |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |