Sammel Thread und Flash-FAQ

hab da noch ein paar spielereien für euch

Die Beispiele
  • Warpfeld
  • Mausverfolger
  • Kugelball
  • Raketen
Stammen von Flashstar.de mit freundlicher Genehmigung von Matthias Kannengiesser


viel spass damit...

greez free

Ich habe Dein letztes Posting entfernt. Grund: Das Beispiel enthielt nur die SWF-Datei. Bitte füge die .fla noch hinzu und hänge die Maus.zip dann an dieses Posting an (Editieren-Funktion). Wir wollen den Sammelthread möglichst übersichtlich halten und nicht für jede Datei einen neuen Beitrag erstellen, danke!

- Datic

.
 

Anhänge

  • warpfeld.zip
    3,8 KB · Aufrufe: 100
  • UFO.zip
    3,2 KB · Aufrufe: 79
  • schnee.zip
    4,5 KB · Aufrufe: 81
  • raketen.zip
    8,5 KB · Aufrufe: 81
  • mausverfolger.zip
    2,2 KB · Aufrufe: 94
  • Mausschrift.zip
    2,2 KB · Aufrufe: 76
  • matrixorig.zip
    2,8 KB · Aufrufe: 82
  • kugelball.zip
    3,6 KB · Aufrufe: 77
  • fpsreader.zip
    2,1 KB · Aufrufe: 70
  • folgendesauge.zip
    2,3 KB · Aufrufe: 84
Zuletzt bearbeitet von einem Moderator:
Number.prototype.runden (round)

Hier ein prototype zum Thema Runden für die die es ganz genau nehmen. :)

PHP:
// --------------------------------------------------------------------
// Number.prototype.runden
// 
// Definition: zahl.runden(Rundungsmodus, DezimalZeichen, Genauigkeit)
// 
// pModus - Rundungsmodus (Auswahl: exc, dif, nat)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
// 
// Syntax: zahl_variable.runden("exc", ",", 2)
// 
// Anmerkung zu pModus - folgende Modien stehen zur Verfügung:
// "exc" :  (bsp: 10.1 -> 11 / 10.6 -> 11)
// "dif" :  (bsp: 10.8 -> 10 / 10.6 -> 10)
// "nat" :  (bsp: 10.1 -> 10 / 10.6 -> 11)
// 
// "exc" : ceil (Obergrenze - ist die nächstliegende Ganzzahl, die größer oder gleich der Zahl ist)
// "dif" : floor (Untergrenze - ist die nächstliegende Ganzzahl, die kleiner oder gleich der angegebenen Zahl ist)
// "nat" : round (Runden - rundet den Wert des Parameters x auf die nächstliegende Ganzzahl auf oder ab und gibt diese zurück)
// 
// ---------------------------------------------------------------------
 
Number.prototype.runden = function (pModus, pDezZeichen, pStellen)
{
	var prezision = Math.pow (10, pStellen);
	if (pModus == "exc")
	{
		var resultat = String (Math.ceil (this * prezision) / prezision);
	}
	else if (pModus == "dif")
	{
		var resultat = String (Math.floor (this * prezision) / prezision);
	}
	else if (pModus == "nat")
	{
		var resultat = String (Math.round (this * prezision) / prezision);
	}
	else
	{
		return "Fehler: Modus fehlt!";
	}
	var dezPunkt = resultat.indexOf (".");
	if (dezPunkt == -1)
	{
		resultat += ".";
		dezPunkt = resultat.length;
	}
	var dezZahl = resultat.substr (dezPunkt + 1);
	var i = dezZahl.length;
	while (i < pStellen)
	{
		resultat += "0";
		i++;
	}
	resultat = resultat.split (".").join (pDezZeichen);
	if (pDezZeichen != ",")
	{
		return Number (resultat);
	}
	return resultat;
};

// Verwenden - Beispiele
zahl_1 = 999.444536455;
zahl_2 = 999.444536455;
zahl_3 = 999.444536455;
zahl_4 = 999.44;

gerundet_1 = zahl_1.runden ("exc", ",", 2);
gerundet_2 = zahl_2.runden ("dif", ".", 3);
gerundet_3 = zahl_3.runden ("nat", ",", 3);
gerundet_4 = zahl_4.runden ("nat", ",", 3);

trace ("-----------------------------");
trace ("Zahl 1 original: " + zahl_1);
trace ("Zahl 1 gerundet: " + gerundet_1);
trace ("Zahl 2 original: " + zahl_2);
trace ("Zahl 2 gerundet: " + gerundet_2);
trace ("Zahl 3 original: " + zahl_3);
trace ("Zahl 3 gerundet: " + gerundet_3);
trace ("Zahl 4 original: " + zahl_4);
trace ("Zahl 4 gerundet: " + gerundet_4);
trace ("-----------------------------");

Liebe Grüsse
Matze K.
 
Re: Number.prototype.runden (round)

Kurzfassung:

PHP:
// --------------------------------------------------------------------
// Number.prototype.runden (round - shortversion)
// 
// Definition: zahl.runden(Rundungsmodus, DezimalZeichen, Genauigkeit)
// 
// pModus - Rundungsmodus (Auswahl: exc, dif, nat)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
// 
// Syntax: zahl_variable.runden("exc", ",", 2)
// 
// Anmerkung zu pModus - folgende Modien stehen zur Verfügung:
// "exc" :  (bsp: 10.1 -> 11 / 10.6 -> 11)
// "dif" :  (bsp: 10.8 -> 10 / 10.6 -> 10)
// "nat" :  (bsp: 10.1 -> 10 / 10.6 -> 11)
// 
// "exc" : ceil (Obergrenze - ist die nächstliegende Ganzzahl, die größer oder gleich der Zahl ist)
// "dif" : floor (Untergrenze - ist die nächstliegende Ganzzahl, die kleiner oder gleich der angegebenen Zahl ist)
// "nat" : round (Runden - rundet den Wert des Parameters x auf die nächstliegende Ganzzahl auf oder ab und gibt diese zurück)
// 
// ---------------------------------------------------------------------

Number.prototype.runden = function(pModus, pDezZeichen, pStellen)
{
	if (pModus == "exc") return (Math.floor(this)+pDezZeichen+Math.ceil(this*Math.pow(10, pStellen)).toString().slice(-pStellen));             
   else if (pModus == "dif") return (Math.floor(this)+pDezZeichen+Math.floor(this*Math.pow(10, pStellen)).toString().slice(-pStellen));
   else if (pModus == "nat") return (Math.floor(this)+pDezZeichen+Math.round(this*Math.pow(10, pStellen)).toString().slice(-pStellen));
   else return "Fehler: Modus fehlt!";
};


Number.prototype.runden_nat = function(pDezZeichen, pStellen)
{
 return (Math.floor(this)+pDezZeichen+Math.round(this*Math.pow(10, pStellen)).toString().slice(-pStellen));
};

// Verwenden - Beispiele
zahl_1 = 999.444536455;
zahl_2 = 999.444536455;
zahl_3 = 999.444536455;
zahl_4 = 999.44;

gerundet_1 = zahl_1.runden ("exc", ",", 2);
gerundet_2 = zahl_2.runden ("dif", ".", 3);
gerundet_3 = zahl_3.runden ("nat", ",", 3);
gerundet_4 = zahl_4.runden ("nat", ",", 3);

trace ("-----------------------------");
trace ("Zahl 1 original: " + zahl_1);
trace ("Zahl 1 gerundet: " + gerundet_1);
trace ("Zahl 2 original: " + zahl_2);
trace ("Zahl 2 gerundet: " + gerundet_2);
trace ("Zahl 3 original: " + zahl_3);
trace ("Zahl 3 gerundet: " + gerundet_3);
trace ("Zahl 4 original: " + zahl_4);
trace ("Zahl 4 gerundet: " + gerundet_4);
trace ("-----------------------------");
trace ("Zahl 1 gerundet: " + zahl_1.runden_nat(",",2))

Liebe Grüsse
Matze K.
 
Runden (Klasse - ActionScript 2.0)

Wenn wir schon mal dabei sind für die ActionScript 2.0 Fans - statische Methoden aus der Runden-Klasse.

PHP:
// --------------------------------------------------------------------
// Klasse: Runden 
// 
// Definition: Runden.runden_extended(pZahl, Rundungsmodus, DezimalZeichen, Genauigkeit)
// 
// pZahl - zu rundende Zahl
// pModus - Rundungsmodus (Auswahl: exc, dif, nat)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
// 
// Syntax:
// gerundet_1 = Runden.runden_extended(zahl_1,"exc", ",", 2);
// 
// Anmerkung zu pModus - folgende Modien stehen zur Verfügung:
// "exc" :  (bsp: 10.1 -> 11 / 10.6 -> 11)
// "dif" :  (bsp: 10.8 -> 10 / 10.6 -> 10)
// "nat" :  (bsp: 10.1 -> 10 / 10.6 -> 11)
// 
// "exc" : ceil (Obergrenze - ist die nächstliegende Ganzzahl, die größer oder gleich der Zahl ist)
// "dif" : floor (Untergrenze - ist die nächstliegende Ganzzahl, die kleiner oder gleich der angegebenen Zahl ist)
// "nat" : round (Runden - rundet den Wert des Parameters x auf die nächstliegende Ganzzahl auf oder ab und gibt diese zurück)
// 
// ---------------------------------------------------------------------
class Runden extends Number {
	// Runden - Ausführliche Fassung
	static function runden_extended(pZahl:Number, pModus:String, pDezZeichen:String, pStellen:Number) {
		var prezision = Math.pow(10, pStellen);
		if (pModus == "exc") {
			var resultat = String(Math.ceil(pZahl*prezision)/prezision);
		} else if (pModus == "dif") {
			var resultat = String(Math.floor(pZahl*prezision)/prezision);
		} else if (pModus == "nat") {
			var resultat = String(Math.round(pZahl*prezision)/prezision);
		} else {
			return "Fehler: Modus fehlt!";
		}
		var dezPunkt = resultat.indexOf(".");
		if (dezPunkt == -1) {
			resultat += ".";
			dezPunkt = resultat.length;
		}
		var dezZahl = resultat.substr(dezPunkt+1);
		var i = dezZahl.length;
		while (i<pStellen) {
			resultat += "0";
			i++;
		}
		resultat = resultat.split(".").join(pDezZeichen);
		if (pDezZeichen != ",") {
			return Number(resultat);
		}
		return resultat;
	}
	// Runden - Kurzfassung
	static function runden_short(pZahl:Number, pModus:String, pDezZeichen:String, pStellen:Number) {
		if (pModus == "exc") {
			return (Math.floor(pZahl)+pDezZeichen+Math.ceil(pZahl*Math.pow(10, pStellen)).toString().slice(-pStellen));
		} else if (pModus == "dif") {
			return (Math.floor(pZahl)+pDezZeichen+Math.floor(pZahl*Math.pow(10, pStellen)).toString().slice(-pStellen));
		} else if (pModus == "nat") {
			return (Math.floor(pZahl)+pDezZeichen+Math.round(pZahl*Math.pow(10, pStellen)).toString().slice(-pStellen));
		} else {
			return "Fehler: Modus fehlt!";
		}
	}
	// Runden - nur natürlicher Rundungsmodus
	static function runden_nat(pZahl:Number, pModus:String, pDezZeichen:String, pStellen:Number) {
		return (Math.floor(pZahl)+pDezZeichen+Math.round(pZahl*Math.pow(10, pStellen)).toString().slice(-pStellen));
	}
}

PHP:
// Verwenden - Beispiele
zahl_1 = 999.444536455;
zahl_2 = 999.444536455;
zahl_3 = 999.444536455;
zahl_4 = 999.44;

gerundet_1 = Runden.runden_extended(zahl_1,"exc", ",", 2);
gerundet_2 = Runden.runden_extended(zahl_2,"dif", ".", 3);
gerundet_3 = Runden.runden_extended(zahl_3,"nat", ".", 3);
gerundet_4 = Runden.runden_extended(zahl_4,"nat", ",", 3);


trace ("-----------------------------");
trace ("Zahl 1 original: " + zahl_1);
trace ("Zahl 1 gerundet: " + gerundet_1);
trace ("Zahl 2 original: " + zahl_2);
trace ("Zahl 2 gerundet: " + gerundet_2);
trace ("Zahl 3 original: " + zahl_3);
trace ("Zahl 3 gerundet: " + gerundet_3);
trace ("Zahl 4 original: " + zahl_4);
trace ("Zahl 4 gerundet: " + gerundet_4);
trace ("-----------------------------");
trace ("Zahl 1 gerundet: " + Runden.runden_nat(zahl_4,"nat", ",", 2))

Liebe Grüsse
Matze K.
 
Number.prototype.runden_extended

Erweiterte Version - Nun sind Negative Zahlen, Nullenauffüllung und fehlerhafte Parameter kein Problem mehr.

PHP:
// --------------------------------------------------------------------
// Number.prototype.runden_extended
//
// Definition: zahl.runden(Rundungsmodus, DezimalZeichen, Genauigkeit)
//
// pModus - Rundungsmodus (Auswahl: ceil, floor, round)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
//
// Syntax: zahl_variable.runden("ceil", ",", 2)
//
// Anmerkung zu pModus - folgende Modien stehen zur Verfügung:
// "ceil" :  (bsp: 10.1 -> 11 / 10.6 -> 11)
// "floor" :  (bsp: 10.8 -> 10 / 10.6 -> 10)
// "round" :  (bsp: 10.1 -> 10 / 10.6 -> 11)
//
// "ceil" : ceil (Obergrenze - ist die nächstliegende Ganzzahl, die größer oder gleich der Zahl ist)
// "floor" : floor (Untergrenze - ist die nächstliegende Ganzzahl, die kleiner oder gleich der angegebenen Zahl ist)
// "round" : round (Runden - rundet den Wert des Parameters x auf die nächstliegende Ganzzahl auf oder ab und gibt diese zurück)
//
// ---------------------------------------------------------------------
Number.prototype.runden_extended = function(pModus, pDezZeichen, pStellen) {
	if ("ceil-floor-round".indexOf(pModus) == -1) {
		return "runden-Fehler: unbekannter Modus!";
	}
	if (".,".indexOf(pDezZeichen) == -1) {
		return "runden-Fehler: unbekanntes DezZeichen!";
	}
	if (pStellen != Math.abs(Math.round(pStellen))) {
		return "runden-Fehler: ungeeignete Stellenangabe!";
	}
	var resultat = String(Math[pModus](this*Math.pow(10, pStellen))/Math.pow(10, pStellen));
	if (pStellen && resultat.indexOf("e") == -1) {
		resultat += (resultat.indexOf(".") != -1) ? "" : ".";
		var nullen = resultat.indexOf(".")-resultat.length+1+pStellen;
		while (nullen--) {
			resultat += "0";
		}
	}
	return resultat.split(".").join(pDezZeichen);
};

// Verwenden - Beispiele
// Positive Werte
zahl_1 = 999.444536455;
zahl_2 = 999.444536455;
zahl_3 = 999.444536455;
zahl_4 = 999.44;
gerundet_1 = zahl_1.runden_extended("ceil", ",", 2);
gerundet_2 = zahl_2.runden_extended("floor", ".", 3);
gerundet_3 = zahl_3.runden_extended("round", ",", 3);
gerundet_4 = zahl_4.runden_extended("round", ",", 3);
trace("-----------------------------");
trace("Zahl 1 original: "+zahl_1);
trace("Zahl 1 gerundet: "+gerundet_1);
trace("Zahl 2 original: "+zahl_2);
trace("Zahl 2 gerundet: "+gerundet_2);
trace("Zahl 3 original: "+zahl_3);
trace("Zahl 3 gerundet: "+gerundet_3);
trace("Zahl 4 original: "+zahl_4);
trace("Zahl 4 gerundet: "+gerundet_4);
trace("-----------------------------");

// Negative Werte + Auffüllung
zahl_1 = -0.00123456789e-12;
zahl_2 = -123.456789;
zahl_3 = -0.35;
zahl_4 = 20;
trace("ceil : "+zahl_1.runden_extended("ceil", ",", 0));
trace("floor: "+zahl_1.runden_extended("floor", ".", 1));
trace("round: "+zahl_1.runden_extended("round", ",", 20));
trace("ceil : "+zahl_2.runden_extended("ceil", ",", 0));
trace("floor: "+zahl_2.runden_extended("floor", ".", 4));
trace("round: "+zahl_2.runden_extended("round", ",", 4));
trace("ceil : "+zahl_3.runden_extended("ceil", ",", 0));
trace("floor: "+zahl_3.runden_extended("floor", ".", 4));
trace("round: "+zahl_3.runden_extended("round", ",", 4));
trace("ceil : "+zahl_4.runden_extended("ceil", ",", 0));
trace("floor: "+zahl_4.runden_extended("floor", ".", 4));
trace("round: "+zahl_4.runden_extended("round", ",", 4));
trace("-----------------------------");

Resultate:
-----------------------------
Zahl 1 original: 999.444536455
Zahl 1 gerundet: 999,45
Zahl 2 original: 999.444536455
Zahl 2 gerundet: 999.444
Zahl 3 original: 999.444536455
Zahl 3 gerundet: 999,445
Zahl 4 original: 999.44
Zahl 4 gerundet: 999,440
-----------------------------
ceil : 0
floor: -0.1
round: -1,23457e-15
ceil : -123
floor: -123.4568
round: -123,4568
ceil : 0
floor: -0.3500
round: -0,3500
ceil : 20
floor: 20.0000
round: 20,0000
-----------------------------

Liebe Grüsse
Matze K.
 
Runden (Klasse Extended - ActionScript 2.0)

Erweiterte Version - Nun sind Negative Zahlen, Nullenauffüllung und fehlerhafte Parameter kein Problem mehr.

Runden.as
PHP:
// --------------------------------------------------------------------
// Klasse: Runden (Extended)
// 
// Definition: Runden.runden_extended(pZahl, Rundungsmodus, DezimalZeichen, Genauigkeit)
// 
// pZahl - zu rundende Zahl
// pModus - Rundungsmodus (Auswahl: ceil, floor, round)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
// 
// Syntax:
// gerundet_1 = Runden.runden_extended(zahl_1,"ceil", ",", 2);
// 
// Anmerkung zu pModus - folgende Modien stehen zur Verfügung:
// "ceil"  :  (bsp: 10.1 -> 11 / 10.6 -> 11)
// "floor" :  (bsp: 10.8 -> 10 / 10.6 -> 10)
// "round" :  (bsp: 10.1 -> 10 / 10.6 -> 11)
// 
// "ceil" : ceil (Obergrenze - ist die nächstliegende Ganzzahl, die größer oder gleich der Zahl ist)
// "floor" : floor (Untergrenze - ist die nächstliegende Ganzzahl, die kleiner oder gleich der angegebenen Zahl ist)
// "round" : round (Runden - rundet den Wert des Parameters x auf die nächstliegende Ganzzahl auf oder ab und gibt diese zurück)
// 
// ---------------------------------------------------------------------
class Runden extends Number {	
	static function runden_extended(pZahl:Number, pModus:String, pDezZeichen:String, pStellen:Number) {
		if ("ceil-floor-round".indexOf(pModus) == -1) {
			return "runden-Fehler: unbekannter Modus!";
		}
		if (".,".indexOf(pDezZeichen) == -1) {
			return "runden-Fehler: unbekanntes DezZeichen!";
		}
		if (pStellen != Math.abs(Math.round(pStellen))) {
			return "runden-Fehler: ungeeignete Stellenangabe!";
		}
		var resultat = String(Math[pModus](pZahl*Math.pow(10, pStellen))/Math.pow(10, pStellen));
		if (pStellen && resultat.indexOf("e") == -1) {
			resultat += (resultat.indexOf(".") != -1) ? "" : ".";
			var nullen = resultat.indexOf(".")-resultat.length+1+pStellen;
			while (nullen--) {
				resultat += "0";
			}
		}
		return resultat.split(".").join(pDezZeichen);
	}
}

Im Flash Film
PHP:
// Verwenden - Beispiele
// Positive Werte
zahl_1 = 999.444536455;
zahl_2 = 999.444536455;
zahl_3 = 999.444536455;
zahl_4 = 999.44;
gerundet_1 = Runden.runden_extended(zahl_1, "ceil", ",", 2);
gerundet_2 = Runden.runden_extended(zahl_2, "floor", ".", 3);
gerundet_3 = Runden.runden_extended(zahl_3, "round", ",", 3);
gerundet_4 = Runden.runden_extended(zahl_4, "round", ",", 3);
trace("-----------------------------");
trace("Zahl 1 original: "+zahl_1);
trace("Zahl 1 gerundet: "+gerundet_1);
trace("Zahl 2 original: "+zahl_2);
trace("Zahl 2 gerundet: "+gerundet_2);
trace("Zahl 3 original: "+zahl_3);
trace("Zahl 3 gerundet: "+gerundet_3);
trace("Zahl 4 original: "+zahl_4);
trace("Zahl 4 gerundet: "+gerundet_4);
trace("-----------------------------");

// Negative Werte + Auffüllung
zahl_1 = -0.00123456789e-12;
zahl_2 = -123.456789;
zahl_3 = -0.35;
zahl_4 = 20;
trace("ceil : "+Runden.runden_extended(zahl_1, "ceil", ",", 0));
trace("floor: "+Runden.runden_extended(zahl_1, "floor", ".", 1));
trace("round: "+Runden.runden_extended(zahl_1, "round", ",", 20));
trace("ceil : "+Runden.runden_extended(zahl_2, "ceil", ",", 0));
trace("floor: "+Runden.runden_extended(zahl_2, "floor", ".", 4));
trace("round: "+Runden.runden_extended(zahl_2, "round", ",", 4));
trace("ceil : "+Runden.runden_extended(zahl_3, "ceil", ",", 0));
trace("floor: "+Runden.runden_extended(zahl_3, "floor", ".", 4));
trace("round: "+Runden.runden_extended(zahl_3, "round", ",", 4));
trace("ceil : "+Runden.runden_extended(zahl_4, "ceil", ",", 0));
trace("floor: "+Runden.runden_extended(zahl_4, "floor", ".", 4));
trace("round: "+Runden.runden_extended(zahl_4, "round", ",", 4));
trace("-----------------------------");

Resultate:
-----------------------------
Zahl 1 original: 999.444536455
Zahl 1 gerundet: 999,45
Zahl 2 original: 999.444536455
Zahl 2 gerundet: 999.444
Zahl 3 original: 999.444536455
Zahl 3 gerundet: 999,445
Zahl 4 original: 999.44
Zahl 4 gerundet: 999,440
-----------------------------
ceil : 0
floor: -0.1
round: -1,23457e-15
ceil : -123
floor: -123.4568
round: -123,4568
ceil : 0
floor: -0.3500
round: -0,3500
ceil : 20
floor: 20.0000
round: 20,0000
-----------------------------

Liebe Grüsse
Matze K.
 
Zoom-Effekt (Prototypen)

Hier eine Sammlung von nützlichen Zoom-Prototypes.

PHP:
MovieClip.prototype.ZoomDiv = function (pDim, pTempo)
{
	this.onEnterFrame = function ()
	{
		if (this._xscale < pDim - 1 / pTempo)
		{
			this._xscale = this._xscale + (pDim - this._xscale) / pTempo;
			this._yscale = this._yscale + (pDim - this._yscale) / pTempo;
		}
		else if (this._xscale > pDim + 1 / pTempo)
		{
			this._xscale = this._xscale + (pDim - this._xscale) / pTempo;
			this._yscale = this._yscale + (pDim - this._yscale) / pTempo;
		}
		else
		{
			this._xscale = this._yscale = pDim;
			delete this.onEnterFrame;
		}
	};
};
ASSetPropFlags(MovieClip.prototype, "ZoomDiv", 1);

MovieClip.prototype.ZoomPulsar = function (pDim, pTempo)
{
	this.onEnterFrame = function ()
	{
		if (this._xscale < pDim)
		{
			this._xscale = this._yscale += pTempo;
		}
		else if (this._xscale > pDim)
		{
			this._xscale = this._yscale -= pTempo;
		}
		else
		{
			this._xscale = this._yscale = pDim;
			delete this.onEnterFrame;
		}
	};
};
ASSetPropFlags(MovieClip.prototype, "ZoomPulsar", 1);

MovieClip.prototype.ZoomAdd = function (pOption, pDim, pTempo)
{
	if (pOption)
	{
		this.onEnterFrame = function ()
		{
			if (this._xscale < pDim)
			{
				this._xscale = this._yscale += pTempo;
			}
			else
			{
				this._xscale = this._yscale = pDim;
				delete this.onEnterFrame;
			}
		};
	}
	else
	{
		this.onEnterFrame = function ()
		{
			if (this._xscale > pDim)
			{
				this._xscale = this._yscale -= pTempo;
			}
			else
			{
				this._xscale = this._yscale = pDim;
				delete this.onEnterFrame;
			}
		};
	}
};
ASSetPropFlags(MovieClip.prototype, "ZoomAdd", 1);

// Ausfürhen (Testen)
mc.onRollOver = function ()
{
	this.ZoomDiv (200, 6);
};
mc.onRollOut = function ()
{
	this.ZoomDiv (100, 6);
};
mc2.onRollOver = function ()
{
	this.ZoomPulsar (200, 6);
};
mc2.onRollOut = function ()
{
	this.ZoomPulsar (100, 6);
};
mc3.onRollOver = function ()
{
	this.ZoomAdd (true, 200, 6);
	// ZoomIn (true)
};
mc3.onRollOut = function ()
{
	this.ZoomAdd (false, 100, 6);
	// ZoomOUt (false)
};


// Interval-Varianten
MovieClip.prototype.ZoomInterval = function (pOption, pDim, pTempo, pBps)
{		
	var obj = this;	
	clearInterval(obj.iv);	
	if (pOption)
	{
		obj.zoomIn = function ()
		{
			if (obj._xscale < pDim)
			{				
				obj._xscale = obj._yscale += pTempo;
			}
			else
			{
				obj._xscale = obj._yscale = pDim;				
				clearInterval(obj.iv);
				delete obj.iv;
				delete obj.zoomIn;
				delete obj.zoomOut;
			}
		};					
		obj.iv = setInterval(obj.zoomIn,1000/pBps);
	}
	else
	{
		obj.zoomOut= function ()
		{
			if (obj._xscale > pDim)
			{				
				obj._xscale = obj._yscale -= pTempo;
			}
			else
			{
				obj._xscale = obj._yscale = pDim;				
				clearInterval(obj.iv);
				delete obj.iv;
				delete obj.zoomIn;
				delete obj.zoomOut;
			}
		};				
		obj.iv = setInterval(obj.zoomOut,1000/pBps);
	}
};
ASSetPropFlags(MovieClip.prototype, "ZoomInterval", 1);

mc4.onRollOver = function ()
{
	this.ZoomInterval (true, 200, 6, 24); // ZoomIn (true) / 24 -> 24 Bps (Dokument-Einstellung)
};
mc4.onRollOut = function ()
{
	this.ZoomInterval (false, 100, 6, 24); // ZoomOUt (false) / 24 -> 24 Bps (Dokument-Einstellung)
};

MovieClip.prototype.ZoomIntervalDiv = function (pDim, pTempo, pBps)
{
	var obj = this;	
	clearInterval(obj.iv);	
	obj.zoom = function ()
	{
		if (obj._xscale < pDim - 1 / pTempo)
		{			
			obj._xscale = obj._xscale + (pDim - obj._xscale) / pTempo;
			obj._yscale = obj._yscale + (pDim - obj._yscale) / pTempo;
		}
		else if (obj._xscale > pDim + 1 / pTempo)
		{			
			obj._xscale = obj._xscale + (pDim - obj._xscale) / pTempo;
			obj._yscale = obj._yscale + (pDim - obj._yscale) / pTempo;
		}
		else
		{			
			obj._xscale = obj._yscale = pDim;			
			clearInterval(obj.iv);
			delete obj.iv;
			delete obj.zoom;
		}
	};
	obj.iv = setInterval(obj.zoom,1000/pBps);
};
ASSetPropFlags(MovieClip.prototype, "ZoomIntervalDiv", 1);

mc5.onRollOver = function ()
{
	this.ZoomIntervalDiv (200, 6, 24);
};
mc5.onRollOut = function ()
{
	this.ZoomIntervalDiv (100, 6, 24);
};

Zusatz:
PHP:
Object.prototype.ZoomIntervalDiv = function (pDim, pTempo, pBps)
{
	var obj = this;	
	clearInterval(obj.iv);	
	obj.zoom = function ()
	{
		if (obj._xscale < pDim - 1 / pTempo)
		{			
			obj._xscale = obj._xscale + (pDim - obj._xscale) / pTempo;
			obj._yscale = obj._yscale + (pDim - obj._yscale) / pTempo;
		}
		else if (obj._xscale > pDim + 1 / pTempo)
		{			
			obj._xscale = obj._xscale + (pDim - obj._xscale) / pTempo;
			obj._yscale = obj._yscale + (pDim - obj._yscale) / pTempo;
		}
		else
		{			
			obj._xscale = obj._yscale = pDim;			
			clearInterval(obj.iv);
			delete obj.iv;
			delete obj.zoom;
		}
	};
	obj.iv = setInterval(obj.zoom,1000/pBps);
};
ASSetPropFlags(Object.prototype, "ZoomIntervalDiv", 1);

clip_mc.onRollOver = function ()
{
	this.ZoomIntervalDiv (200, 6, 24);
};
clip_mc.onRollOut = function ()
{
	this.ZoomIntervalDiv (100, 6, 24);
};

but_btn.onRollOver = function ()
{
	this.ZoomIntervalDiv (200, 6, 24);
};
but_btn.onRollOut = function ()
{
	this.ZoomIntervalDiv (100, 6, 24);
};

Be inspired...

Liebe Grüsse
Matze K.
 
Videoplayer für FLV-Dateien mit Meta-Daten [MX2004]

Hi,

hier ein Beispiel für einen Videoplayer, mit dem sich Videodateien im Flash Video Format abspielen lassen. Damit der Player korrekt funktioniert, müssen FLV 1.1 - Dateien mit Meta-Daten verwendet werden. Eine kostenlose Software zum Erstellen und Einfügen dieser Daten gibt es hier: http://www.buraks.com/flvmdi/ .

Der Pfad zum Video sowie ein Flash zum automatischen Abspielen werden per FlashVars übergeben:
Code:
// FlashVars-Parameter:
filename=mein_video.flv
autostart=true

Im Anhang .fla und .swf

Danke noch einmal an Chris Kurt für den Tipp mit onMetaData. :)

Gruß
.
 

Anhänge

  • vid_player.zip
    37 KB · Aufrufe: 884
FPS Meter (Anzeige Komponente)

MovieClip Prototype (Textfeld Komponentenversion):
Code:
MovieClip.prototype.fpsmeter = function ()
{
	this.zaehler = 0;
	this.onEnterFrame = function ()
	{
		this.zaehler++;
	};
	anzeigen = function ()
	{
		this.display_txt.text = this.zaehler;
		this.zaehler = 0;
	};
	setInterval (this, "anzeigen", 1000);
};
ASSetPropFlags (MovieClip.prototype, "fpsmeter", 1);
this.fpsmeter ();

Komponentendownload:
http://www.flashstar.de/tutlist/index.php3?id=1042

MovieClip Prototype (Trace Version):
Code:
MovieClip.prototype.fpsmeter = function ()
{
    this.zaehler = 0;
    this.onEnterFrame = function ()
    {
        this.zaehler++;
    };
    anzeigen = function ()
    {
        trace(this.zaehler);		
        this.zaehler = 0;
    };
    setInterval (this, "anzeigen", 1000);
};
ASSetPropFlags (MovieClip.prototype, "fpsmeter", 1);
this.fpsmeter ();

Die Alte Version nochmal schnell durchgereicht:
Code:
Object.prototype.getFps = function ()
{
	if (signal == true)
	{
		time = getTimer ();
	}
	else
	{
		tempo = Math.ceil (1000 / (getTimer () - time));
	}
	signal = !signal;
	return tempo;
};

this.onEnterFrame = function ()
{
	trace (getFps ());
};

Be inspired

Liebe Grüsse
Matze K.
 
FPS Meter (Extended Version)

Hab noch schnell die extended Version zusammengestellt in deutsch und english:

PHP:
MovieClip.prototype.fpsmeter_extended = function (aktion, ausgabe)
{
	if (aktion == "start")
	{
		this.zaehler = 0;
		this.onEnterFrame = function ()
		{
			this.zaehler++;
		};
		this.anzeigen = function ()
		{
			if (ausgabe == "trace")
			{
				trace (this.zaehler);
			}
			else
			{
				this[ausgabe].text = this.zaehler;
			}
			this.zaehler = 0;
		};
		this.fps_iv = setInterval (this, "anzeigen", 1000);
	}
	else if (aktion == "stop")
	{
		clearInterval (this.fps_iv);
		delete this.onEnterFrame;
		delete this.anzeigen;
		delete this.fps_iv;
		delete this.zaehler;
	}
};
ASSetPropFlags (MovieClip.prototype, "fpsmeter_extended", 1);


// Usage
// Trace ausgabe
this.fpsmeter_extended ("start", "trace");

// Textfeld ausgabe
this.fpsmeter_extended ("start","feld_name");

English-Version
PHP:
// English Version - Extendend (Trace and TextField)
MovieClip.prototype.fpsmeter_extended = function (action, output)
{
	if (action == "start")
	{
		this.counter = 0;
		this.onEnterFrame = function ()
		{
			this.counter++;
		};
		this.display = function ()
		{
			if (output == "trace")
			{
				trace (this.counter);
			}
			else
			{
				this[output].text = this.counter;
			}
			this.counter = 0;
		};
		this.fps_iv = setInterval (this, "display", 1000);
	}
	else if (action == "stop")
	{
		clearInterval (this.fps_iv);
		delete this.onEnterFrame;
		delete this.display;
		delete this.fps_iv;
		delete this.counter;
	}
};
ASSetPropFlags (MovieClip.prototype, "fpsmeter_extended", 1);


// Usage
// Trace output
this.fpsmeter_extended ("start", "trace");

// TextField output
this.fpsmeter_extended ("start","field_name");

Natürlich ist auch diese Version für MX als auch MX 2004 geeignet und die Komponente wird ab Samstag auf flashstar.de zu finden sein.

Liebe Grüsse
Matze K.
 
Zurück