| |||||||
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) |
| langsam wirds Registriert seit: Dec 2005 Ort: Nürnberg
Beiträge: 300
| film lastet rechner ganz aus,onEnterFrame ersetzen
Hallo leute! Ich habe ein Problem in meinem aktuellen Projekt. Die Rechenbelastung ist viel zu hoch! Ich attache in meinem Film bis zu 50 Objekte aus der Bibliothek auf die Bühne. Diesen Objekten wird eine Funktion zugewiesen, durch welche Sie sich unabhängig voneinander bewegen, skalieren, rotieren und ihren Alphawert ändern. Code: function parse() {
for (i = 0; i < uMax; i++) { //uMax ein Zahl zwischen 20-80
clip = attachMovie("ding, "at_ding" + i, i);
clip.x =(Math.random() * 2000 ) - 1000;
clip.y = -1 * (Math.random() * 600 ) + 5;
clip.z = i * 1000;
clip.wert = random(2);
clip.onEnterFrame = bewegung;
}
} Ich hab inzwischen schon herumgetestet und den Film auf verschiedenen Systemen ausprobiert, es scheint wirklich an der anzahl der onEnterFrames zu liegen. meine Frage: Kann ich diese events irgendwie sinnvoll ersetzen, oder einfach geschickter vorgehen? gruß Flo |
| | |
| | #2 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
Vermutlich liegt das Performance-Problem eher am Inhalt der onEnterFrame-Funktionen, nicht an den Events selber. Was passierten denn alles pro Frame pro MC? Und was sind das für Bild-Inhalte? Große Vektorgrafiken (Aber auch Pixelgrafiken bei entsprechender Größe), Filter und Alphaeffekte saugen extrem an der Leistung.
__________________ we will stop enhancing the truth in 3, 2, ... |
| | |
| | #3 (permalink) |
| langsam wirds Registriert seit: Dec 2005 Ort: Nürnberg
Beiträge: 300
|
Das Skript das ich für meine Bewegung verwende basiert auf der 3D Bildergalerie von Flashstar.de Bewegungsfunktion mit rotation und alpha Effekt: Code: function bewegung() {
if (this._xscale >blendSpeed) {
this._alpha = 100-(this._xscale-blendSpeed)*1.5;
} else {
this._alpha =100;
}
this.x = this.x + vx;
this.y = this.y + vy;
this.z = this.z + vz;
// Falls der z-Wert den Minimalwert in der Verschiebung nach hinten unterschreitet,
// stellt Flash das Bild wieder vorne an
if (this.z < (-fl)) {
this.z = this.z + (100 * uMax);
}
// Gegenfall: Falls der z-Wert den Maximalwert in der Verschiebung nach
// vorne überschreitet, dann stellt Flash die Bilder hinten an
else if (this.z > ((200 * uMax) - fl)) {
this.z = this.z - (200 * uMax);
}
// z-beeinflusst die Skalierung und Positionsverhältnisse im Raum
// Begrenzt die Bewegung nach rechts und links
if (this.x < (-1000)) {
this.x = this.x + (2000);
} else if (this.x > ((2000) - 1000)) {
this.x = this.x - (2000);
}
// Zuweisung der Ebenenlage des Bildes
this.swapDepths(1000000 - this.z);
var scale = (fl / ((fl + this.z) + zc));
this._x = (this.x * scale) + xc;
this._y = (this.y * scale) + yc;
this._xscale = (this._yscale = scale * 100);
//this._rotation+=_rotation+1*this.speed*(-1);
if (this.wert == "1") {
this._rotation+=_rotation+1*this.speed;
// trace(this.speed);
} else {
this._rotation+=_rotation+1*this.speed*(-1);
}
} Ich hatte ursprünglich ein in PS erstelltes Sechseck, welches ich als Grafik in der Bibliothek hatte, inzwischen habe ich es schon durch eine Form in Flash nachgebaut. Mein Film ist 2000x400 groß. ABer daran sollte es nicht liegen,soweit ich weiß. verwende ich z.B. nur 10 Objekte(mit rotieren,skalieren,alpha,bewegung) läuft alles gut und ohne ruckeln Ich kann leider heute keine bsp mehr bereitstellen, da das verfremden zu lange dauern würde. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |