| |||||||
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) |
| 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;
}
}
} |
| | |
| | #4 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.369
|
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. |
| | |
| | #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. |
| | |
| | #9 (permalink) | |
| b!w Registriert seit: Sep 2008 Ort: end of www
Beiträge: 33
| Zitat:
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ß! | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |