Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-12-2008, 17:02   #1 (permalink)
b!w
 
Registriert seit: Sep 2008
Ort: end of www
Beiträge: 33
[AS3.0] Rotozoomer

Hi,

habe mich mal daran gemacht und einen Rotozoomer
(alter bekannter Amiga Demoscene Effekt) in AS3.0
nachzuproggen.

So sieht's aus:

http://www.weltenkonstrukteur.de/200...ctionscript30/

Hier der Code - vielleicht interessiert's jemand

Code:
package  
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.SimpleButton;
	import flash.display.Sprite;
	import flash.events.Event;	
	import flash.geom.Matrix;
	import flash.events.MouseEvent;
	import flash.net.*;

	/**
	  * Simple rotozoomer in actionscript3.0
	  *
	  * @author benny!weltenkonstrukteur.de
	  */
	public class RotoZoom2 extends Sprite
	{
		// Declaring class constants
		private const ZOOM_MAX:Number 		= 3;
		private const ZOOM_MIN:Number 		= -2.0;
		private const ZOOM_DELTA:Number 	= 0.015;
		private const ROTATE_DELTA:Number	= 0.05;
		
		/// Initialisate private class members
		private var angle:Number = 0, zoom:Number = ZOOM_MIN, isZoomIncreasing:Boolean = true;
		private var logo:Bitmap = null, logoBitmapData:BitmapData;
		private var sw:uint, sh:uint;
		
		// Declare embedded assets
		[Embed(source = "made-bunny.png")]
		private var LogoBitmap:Class;
		
		/**
		 * Constructor
		 */
		public function RotoZoom2()
		{
			init();
			addEventListener("enterFrame", loop);
		}

		/**
		 * Initialize needed sprites and bitmaps
		 */
		private function init():void
		{
			// Create logo bitmap and retrieving the bitmapData
			logo = new LogoBitmap();
			logoBitmapData = logo.bitmapData;
			
			// Setting canvas dimensions
			sw = stage.stageWidth;
			sh = stage.stageHeight;			
		}
		

		/**
		 * Calcualte roto matrix and draws the scene
		 * @param	ev, onEnter event
		 */
		private function loop(ev:Event):void
		{	
			// If we want to zoom in
			if ( isZoomIncreasing )
			{
				// Add increase value to zoom
				zoom = zoom + ZOOM_DELTA;
			}
			else
			{
				// Otherwise decrement value from zoom
				zoom = zoom - ZOOM_DELTA;
			}
			
			// Calculate new rotation angle
			angle = angle + ROTATE_DELTA;
			
			// If angle is greater than 360
			if ( angle > 360 )
			{
				// Reset it to zero
				angle = 0;
			}
			
			// If zoom is higher than maximum value			
			if ( zoom > ZOOM_MAX )
			{
				// Change to zoom out
				isZoomIncreasing = false;
				zoom = ZOOM_MAX;
			}
			// If zoom is less than minimum value
			else if ( zoom < ZOOM_MIN )
			{
				// Change to zoom in
				isZoomIncreasing = true;
				zoom = ZOOM_MIN;
			}
			
			// Calculate matrix for rotation an zooming
			var rotoMatrix:Matrix = new Matrix(Math.cos(angle) * zoom, Math.sin(angle), -Math.sin(angle), Math.cos(angle) * zoom, 0, 0);
			
			// Fill scene with bitmap using the rotoMatrix
			graphics.clear();
			graphics.beginBitmapFill(logoBitmapData, rotoMatrix,true, true);
			graphics.drawRect(0, 0, sw, sh);
			graphics.endFill();
			
			// Set it free for gargabe collection
			rotoMatrix = null;
		}				
	}

}
__________________
[ BLOG - LABS - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]
benny! ist offline   Mit Zitat antworten
Alt 21-12-2008, 18:53   #2 (permalink)
TK Kommisar
 
Benutzerbild von crazybeelze
 
Registriert seit: Jan 2006
Ort: In einem Haus
Beiträge: 44
bis auf die Tatsache das einem wie schon beim Amiga schlecht wird sehr cool :-)
crazybeelze ist offline   Mit Zitat antworten
Alt 22-12-2008, 08:09   #3 (permalink)
b!w
 
Registriert seit: Sep 2008
Ort: end of www
Beiträge: 33
Wink

Zitat:
Zitat von crazybeelze Beitrag anzeigen
bis auf die Tatsache das einem wie schon beim Amiga schlecht wird sehr cool :-)
LOL .. hast Recht. Getrunken sollte man davor nicht haben.
__________________
[ BLOG - LABS - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]
benny! ist offline   Mit Zitat antworten
Alt 22-12-2008, 10:10   #4 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.369
Thumbs up

hi,
schönes ding! ich steh sowieso auf diesen "oldschool" effekt krams und ganz besonders vom amiga.

cheers, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
salazar ist offline   Mit Zitat antworten
Alt 22-12-2008, 10:21   #5 (permalink)
b!w
 
Registriert seit: Sep 2008
Ort: end of www
Beiträge: 33
Freut mich, dass es Dir gefällt.

Ich glaube und hoffe, dass mehr und mehr alte Amiga Demoscene
Effekte in Flash "nachgebaut" werden. Die Entwicklung der Flash-
Plattform und ActionScript lässt das wirklich immer mehr zu.
__________________
[ BLOG - LABS - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]
benny! ist offline   Mit Zitat antworten
Alt 22-12-2008, 12:35   #6 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Sehr nett und sehr schnell!

Kennst Du sicher schon, oder?

http://www.flashscene.org

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 22-12-2008, 15:31   #7 (permalink)
b!w
 
Registriert seit: Sep 2008
Ort: end of www
Beiträge: 33
Zitat:
Zitat von gaspode Beitrag anzeigen
...
Kennst Du sicher schon, oder?

http://www.flashscene.org

gruß, gaspode
Ich glaube ich habe es früher (als ich noch nix mit Flash
am Hut hatte) mal gesehen. Hab's mir gerade nochmal
angeguckt - vielen Dank für den Link. Könnte jetzt sehr
interessant für mich sein. Thx!
__________________
[ BLOG - LABS - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]
benny! ist offline   Mit Zitat antworten
Alt 22-12-2008, 21:18   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 24
@benny!

Cooler Effekt.
Habe mich gerade mal bei dir in den "labs" umgeschaut.Der DFB Greetings Typer ist auch ganz nett...wann kann man sich den source ziehen(laden) ?

MFG
elComandante ist offline   Mit Zitat antworten
Alt 22-12-2008, 22:22   #9 (permalink)
b!w
 
Registriert seit: Sep 2008
Ort: end of www
Beiträge: 33
Zitat:
Zitat von elComandante Beitrag anzeigen
@benny!

Cooler Effekt.
Habe mich gerade mal bei dir in den "labs" umgeschaut.Der DFB Greetings Typer ist auch ganz nett...wann kann man sich den source ziehen(laden) ?

MFG
@elComandante:

Danke. Und freut mich zu hören, dass Du auch mal
in meinen Labs warst. Der DBF Typer ? Oh gott -
das hab ich in einer Nacht-und-Nebel-Aktion ge-
macht. Source muss definitv nochmal überarbeitet
werden - bevor ich was online stelle. Kann aber noch
etwas dauern. Sorry.

Wenn Du in der Zwischenzeit spezielle Fragen hast,
dann sag bescheid - dann helf ich natürlich gerne!

Gruß!
__________________
[ BLOG - LABS - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]
benny! 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 19:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele