| |||||||
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) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
| Flash vs. C++
Was ich eigentlich schon immer mal wissen wollte, warum in flash die while-schleife eigentlich nicht der in c++ ähnelt, sprich dass Code:
in flash bringt die while schleife ja n schönen abbruch ^^ liegt es vllt daran das flash nach frames arbeitet und dann die while schleife nicht, wie ich vermute in c++ nach CPU geschw. ausgeführt wird ?
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.898
| Also, wenn ich nun nicht ganz daneben liege würde ich mal vermuten, dass Flash versucht Anweisungen in einem Frame abzuarbeiten. Bei Endlosschleifen geht in Flash halt definitiv nach hinten los, denn die können nicht in einem Frame abgehandelt werden. So hab ich mir das damals, wie du, zusammengereimt. |
| | |
| | #4 (permalink) | |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 17.289
| Zitat:
die bearbeitungsgeschwindigkeit hat mit der framerate nichts zu tun. solange ein AS abgearbeitet wird, so lange bewegt sich in der restlichen animation nichts (flash ist nicht multitask-fähig). und genau dieses warten müssen ist der grund der reklamation seitens flash. flash möchte gerne auch mal, eben um die vorgegebene framerate einhalten zu können. nach dem motto: "the show must go on". da hat sich der programmierer unter zu ordnen ;-)
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (24-01-2008 um 14:00 Uhr) | |
| | |
| | #7 (permalink) | |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 17.289
| Zitat:
was hat die höhere priorität, wer steuert das ganze? flash selbst oder AS? wie wir alle wissen, hier "bevormundet" flash das AS und nicht umgekehrt. also wer ist der boss im ring? z.b. ein brower-plugin mag noch so fett und umfangreich sein, es bleibt dem browser untergeordnet. das hat überhaupt nichts damit zu tun, welcher aufwand benötigt wird, um dieses plugin zu erstellen. das mag 1000mal mehr kosten und wert sein. ein plugin bleibt ein plugin und AS ist nur ein teil von flash. demgegenüber bildet c++ das ganze programm; als antwortversuch auf die ursprüngliche frage "worin der unterschied liegt".
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (24-01-2008 um 15:03 Uhr) | |
| | |
| | #8 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
In normalen Programmiersprachen wie C++ oder Java schreibt man was graphische Sachen angeht direkt in den Grafikspeicher, wenn man also in einer while-Schleife ein paar Pixel umfärbt, ließt die Grafikkarte das (asynchron) aus dem Grafikspeicher aus, und zeigt es auf dem Bildschirm an. In Flash ist zwischen dem Programmierer und dem Grafikspeicher noch eine Stufe dazwischen, die das was der Programmierer (als Vektor) zeichnet erstmal auf Pixel rastert, und dann als Bitmap in den Grafikspeicher schreibt. Diese Zwischenstufe wird periodisch, will heißen einmal pro Frame aufgerufen, und kommt eben immer erst zum Zuge, wenn alle anstehenden AS Anweisungen abgearbeitet sind. Das Vorgehen von Flash hat den Vorteil, das man immer nur "ganze" Bilder sieht, weil der Bildschirm immer auf einmal aktualisiert wird. In Java muss man eigentlich immer, wenn man etwas bewegtes zeichnen möchte, selber diese Zwischenstufe einbauen, indem man einen eigenen Puffer baut, in den erstmal reingemalt wird, und der dann als ganzen auf den Grafikspeicher kopiert wird.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #9 (permalink) |
| \x3a\x6f\x29 Registriert seit: Apr 2004 Ort: paris
Beiträge: 806
|
Moment, Moment! Also eine Endlosschleife ist immer eine Endlosschleife. Das sei dir gesagt. Stell dir etwas vor wie Code: while (true)
{
while (true)
{
// zeichne etwas schönes
setPixels(...);
}
updateScreen();
} Das Problem bleibt also _genauso_ bestehen. Jetzt aber zu den Unterschieden: Mit C/C++/Java/usw. hast du die Möglichkeit Threads zu verwenden. Threads erlauben es "parallel" zu arbeiten. Bei 2 CPUs funktioniert das sogar mehr oder weniger, weil Threads pro CPU verteilt werden können und so die Last verteilt wird. Zu dem Beispiel mit der while: Code: THREAD1
{
while(true)
{
updateScreen()
}
}
THREAD2
{
while(true)
{
setPixels()
}
} Etwas anderes was du oft siehst ist ein Thread für einen Server, einer für die Clients (eine ganz schlechte Praxis eigentlich) und das sieht dann so aus Code: while(true)
{
client = server.accept();
doSomething(client);
} |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |