| |||||||
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 |
| | #136 (permalink) | |||
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
| Zitat:
Zitat:
Zitat:
mfg. r
__________________ Ralf Bokelberg™ - Flex & Flash Consulting | |||
| | |
| | #138 (permalink) |
| [+] Registriert seit: Dec 2002 Ort: cologne
Beiträge: 2.271
|
So 'richtig' glücklich bin ich mit der Performance noch nicht. Ich weiss ja nicht, wie der Player seine Resourcen verteilt, aber eine Menge Zeugs vom Player benutze ich wahrscheinlich nie. Hier ein wavemap beispiel auf 80 x 80 (8.5 Player) Die ganzen neuen Experimente sind ja nett, aber für nichts zu gebrauchen. Die meisten sind eh sehr klein und trotzdem nicht flott. Ich spreche jetzt nur von dem ganzen selbstgepixelten Zeugs. Das man mit der Performance noch andere tolle Sachen möglich sind, wenn ich zum Beispiel an physikalische Simulationen denke (Rigid Bodies, etc...), ist klar. Nur mal so in den Raum geworfen. Code:
// compiler parameters:
// -default-size 80 80 -default-frame-rate 80
package
{
import flash.util.trace;
import flash.util.getTimer;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class Wavemap extends MovieClip
{
//-- map size
private const xMax: int = 80;
private const yMax: int = 80;
//-- 2 wavemaps over time
private var wave0: Array;
private var wave1: Array;
private var mouseDown: Boolean;
private const origin: Point = new Point();
//-- off-/online bitmap
private var output: BitmapData;
private var buffer: BitmapData;
//-- fps
private var fpsText: TextField;
private var fr: int;
private var ms: int;
public function Wavemap()
{
stage.scaleMode = 'noScale';
initMap();
buffer = new BitmapData( xMax, yMax, false, 0xffffff );
output = new BitmapData( xMax, yMax, false, 0xffffff );
addChild( new Bitmap( output ) );
fpsText = new TextField();
fpsText.autoSize = 'left';
addChild( fpsText );
}
private function initMap(): Void
{
wave0 = new Array();
wave1 = new Array();
var x: int;
var w0: Array;
var w1: Array;
for( var y: int = 0 ; y < yMax ; y++ )
{
w0 = wave0[y] = [];
w1 = wave1[y] = [];
for( x = 0 ; x < xMax ; x++ )
{
//-- fill with zero
w0[x] = w1[x] = 0;
}
}
//-- inject events
stage.addEventListener( 'enterFrame', updateWave );
stage.addEventListener( 'mouseDown', onMouseDown );
stage.addEventListener( 'mouseUp', onMouseUp );
//-- init fps
ms = getTimer();
fr = 0;
mouseDown = false;
}
private function onMouseDown( event: Event ): Void
{
mouseDown = true;
}
private function onMouseUp( event: Event ): Void
{
mouseDown = false;
}
private function updateWave( event:Event ): Void
{
if( mouseDown )
{
// trigger wave
var mx: int = mouseX | 0;
var my: int = mouseY | 0;
if( mx > 0 && mx < xMax - 1 && my > 0 && my < yMax - 1 )
{
wave0[my][mx | 0] = 0xffffff;
}
}
var x: int;
var y: int = yMax - 1;
var n: int;
var c: int;
//-- save performance
var wy0: Array;
var wy1: Array;
while( --y )
{
x = xMax - 1;
wy0 = wave0[y];
wy1 = wave1[y];
while( --x )
{
//-- wave kernel
n = ((
wy0[x-1] +
wy0[x+1] +
wave0[y-1][x] +
wave0[y+1][x] ) >> 1 ) - wy1[x];
//-- damp the wave
wy1[x] = n = n - ( n >> 5 );
// clamp between (0,0xff)
c = ( n + 0xffffff ) >> 17;
//-- draw result
buffer.setPixel( x, y, c << 16 | c << 8 | c );
}
}
//-- flip
var wt: Array = wave0;
wave0 = wave1;
wave1 = wt;
//-- fps
fr++;
if( ms + 1000 < getTimer() )
{
fpsText.text = fr.toString();
fr = 0;
ms = getTimer();
}
//-- copy to output
output.copyPixels( buffer, output.rectangle, origin );
}
}
} |
| | |
| | #139 (permalink) |
| Uncle Rico Registriert seit: Aug 2003 Ort: Köln
Beiträge: 196
|
Hat jemand eine guten Tip, wie man die Skalierung des Films ausschaltet und auf absolute Werte setzt? Liegt das Template für die erzeugte HTML Seite vielleicht irgendwo im Plugin Verzeichnis? Und nochwas: -optimize steht laut Doku per default auf false ! Was genau wird optimiert, wenn ich -optimize=true angebe? |
| | |
| | #142 (permalink) |
| Neuer User Registriert seit: Oct 2005
Beiträge: 18
|
Mit der Einführung der DisplayList hatte ich gehofft, dass der ENTER_FRAME Event der DisplayObjects auch nur dann aufgerufen wird, wenn diese sich innerhalb der DisplayList befinden. Dem ist leider nicht so. Auch wenn sich das manchmal als praktisch erweisen könnte, wäre es mir andersherum trotzdem lieber gewesen.
|
| | |
| | #143 (permalink) |
| [+] Registriert seit: Dec 2002 Ort: cologne
Beiträge: 2.271
|
Wie bekomme ich den Debugger im Standalone zum Laufen ? Beim Öffnen möchte er einen Host zum Debuggen haben, den ich ihm nicht liefern kann. der Umweg über den Browser ist mir auf die Dauer zu blöd und dauert zu lange... Muss da im Hintergrund noch was gestartet werden ? |
| | |
| | #146 (permalink) |
| [+] Registriert seit: Dec 2002 Ort: cologne
Beiträge: 2.271
|
Ich habe seltsame neue Erkenntnisse der Performance wegen. Vielleicht liegt es daran, dass die neue AVM noch nicht optimiert ist. Ich versuche gerade, etwas Code zu optimieren und siehe da. Ausdrücke innerhalb von while oder if Konstrukten sind sehr viel langsamer. Beispiel: Code: var x: Number = 0;
while( x++ < 1000 )
{
// do something
}
var x: Number = 0;
while( x < 1000 )
{
x++;
// do something faster
}
// oder innerhalb von Schleifen
if( ( z = iz * 100 ) < 0 )
{
// do something
}
z = iz * 100;
if( z < 0 )
{
// do something faster
} |
| | |
| | #147 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 11
|
ich habe jetzt nicht den ganzen Beitrag verfolgt, eigentlich nur die ersten seiten überflogen, aber hier wird so viel von den veränderungen geredet AS1-AS2-AS3, um up to date oder one step ahead zu sein, hätte ich eine Frage da ich bisher in AS2 nur minimales Wissen habe. Lohnt es sich jetzt noch ordentlich mit AS2 zu beschäftigen oder sollte man besser direkt auf AS3 setzen? wenn AS3, wo kann man sich da was zu anschauen, die codebeispiele hier erinnern mich eigentlich eher an JAVA als an AS? mfg |
| | |
| | #149 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Das ist meiner Meinung nach sowiso ein Fluch, soviel wie möglich in den if / for / while - Konstrukten erledigen zu wollen. Am besten noch an nem Array rumschnibbeln, und seine Länge neu auslesen … Wenn es soviel langsamer ist, zwingt es vielleicht zu einem besseren Codingstyle. Dass allerdings ein i++ langsamer ist, naja, man kann nicht alles haben
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #150 (permalink) |
| \x3a\x6f\x29 Registriert seit: Apr 2004 Ort: paris
Beiträge: 806
|
Nochmal zum Loader Problem. Hat das irgendjemand gelöst? Bei mir ging es mal, dann wieder nicht und jetzt kommt der selbe Fehler wie bei euch auch, nachdem ich das in eine zweite Klasse gepackt habe. [EDIT] Damit scheint es zu gehen: var req: URLRequest = new URLRequest( 'bild.jpg' ); req.applicationDomain = new ApplicationDomain( ApplicationDomain.currentDomain ); Geändert von [je] (09-11-2005 um 20:22 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |