Warum ist das Erstellen von Inhalten mit HTML5 Canvas wesentlich komplizierter als das Erstellen mit Flash? [geschlossen]

7

Ich mache Flash seit ein paar Monaten und ich liebe es. Ich kann ein Rechteck-Werkzeug verwenden, um ein Rechteck zu zeichnen und innerhalb von Sekunden ein Form- / Bewegungs-Tweening durchzuführen.

Heutzutage reden viele Leute über HTML5 vs Flash und ich habe heute HTML5 Canvas angeschaut. Zu meiner Überraschung sehe ich einen ganzen Haufen "Code". Es ist so kompliziert, sie müssen viele Anrufe (fill, stroke, moveto, closepath usw.) machen, um eine einfache Form zu erhalten. Und sogar Dutzende Zeilen Code mit Javascript mischen, um eine einfache Bewegung zu tun ???

Vermisse ich etwas? Dadurch wird die Animation mit HTML5 Canvas 10x komplizierter als mit Flash.

    
Victorgalaxy 19.01.2011, 15:41
quelle

6 Antworten

12

Gute Frage. Ich arbeite seit ein paar Jahren mit <canvas> und bin auch ein ehemaliger Flash-Entwickler.

Ich glaube auch nicht, dass du etwas verpasst hast. Nun, <canvas> , weißt du, es hat um komplizierter als Flash aussehen :). Flash ist ein Client-Tool. Es bietet eine großartige GUI, viele visuelle und unmittelbare Funktionen und ermöglicht es dem Benutzer, Animationen manchmal ohne eine einzige Codezeile (Actionscript) zu erstellen. Auf der anderen Seite können Sie mit diesem bestimmten HTML5-Tag viele Dinge tun, die mit der Flash-Technologie einfacher zu erledigen sind. Aber es gibt mehrere Vorteile bei der Verwendung, zum Beispiel:

  • Es ist browserübergreifend (nehmen wir an, IE9 wird volle browserübergreifende Kompatibilität haben - übrigens gibt es die excanvas lib, die vml anstelle von Canvas in IE & lt; 9 schreibt)
  • Sie müssen kein Plugin herunterladen, um etwas anzuzeigen
  • Es "überlädt" das DOM nicht
  • Sie können einige logische Muster in eine Bibliothek einfügen (Linien zeichnen, Formen zeichnen, etwas animieren), um die Verwendung zu vereinfachen.
  • Sobald Sie wissen, wie es funktioniert, können Sie tolle glatte und leichte Gadgets / Charts / Animationen entwerfen und erstellen
  • Sie müssen nicht bezahlen, um es zu benutzen:)
  • usw.

Übrigens hat Flash ein ganz anderes Ziel: Es erlaubt dem Benutzer, alles innerhalb einer bestimmten Plattform ohne vollständige Integration in den Browser zu erstellen. Es ist eine besondere (und sicherlich coole !!) Technologie, die in den Browser mit den wichtigsten Bereichen, die Multimedia und unbegrenzte Arten von Animationen sind, verpackt ist.

Das Ziel von

Canvas ist komplett anders. Es ist eine "neue" Möglichkeit, Formen, Animationen usw. innerhalb des Browsers innerhalb einer bestimmten Seite durch dieses Tag zu erhalten. Denken Sie daran, dass Sie JS-Code schreiben müssen, der etwas sowohl im 2D- als auch im 3D-Kontext rendern kann (ist es nicht sooo gut ???: D)

P. s. werfen Sie einen Blick auf diese beiden Leinwandprojekte, die wir (ich und meine Kollegen @ work) für den Studiengang Softwareentwicklung an der Universität vorgeschlagen haben:

AjaxDraw , vollständige <canvas> basierte Maler, es exportieren / importieren Svg-Dateien

SketchYourSite , Elemente, die von <canvas> elements

dargestellt werden     
stecb 19.01.2011, 16:15
quelle
4

Ich bin nicht genau klar, was Sie fragen. <canvas> ist ein Standardwerkzeug und kein Autorenwerkzeug. Flash hat ein Authoring-Tool, weil es von einem Unternehmen geschrieben wurde, das sein Geld damit verdient, Authoring-Tools dafür zu verkaufen (zum Zeitpunkt des Schreibens 699 US-Dollar für Flash Professional).

Ich mache sowas selbst nicht, daher kenne ich den Status von <canvas> Authoring Tools nicht, aber anscheinend wird Adobe in einigen seiner Produkte Unterstützung für <canvas> hinzufügen < a href="http://www.mezzoblue.com/archives/2010/01/14/illustrator_/"> wie letztes Jahr von Dave Shea erwähnt . Es gibt nichts, was andere Unternehmen daran hindert, für <canvas> entweder Designer-freundliche Authoring-Tools zu schreiben.

    
Paul D. Waite 19.01.2011 16:29
quelle
2

Ich glaube nicht, dass Ihnen etwas fehlt. Die Idee hinter HTML5 Canvas ist es, die Funktionalität als Standard für alle Browser bereitzustellen. Dies ist immer noch sehr neu in dem großen Schema der Dinge und nicht notwendigerweise eine vollständige Lösung für alle Menschen.

Denken Sie daran, dass Sie bei solchen Projekten wahrscheinlich eine Bibliothek verwenden möchten, um mit Canvas-Elementen zu interagieren, wenn Sie vorhaben, starke Animationen zu verwenden. Benutzerdefiniert oder von Drittanbietern, muss der Code nicht jedes Mal neu eingegeben werden.

    
David Houde 19.01.2011 15:48
quelle
2

Canvas selbst kann nicht die gesamte Flash-Entwicklungsumgebung ersetzen. Der Zweck von Canvas ist es, einen Cross-Browser-Standard für Echtzeitgrafiken zu schaffen, der möglicherweise die Notwendigkeit von Flash reduzieren könnte Spieler, der ein 3rd-Party-Plugin ist. Canvas stellt einige Zeichenfunktionen auf niedriger Ebene zur Verfügung, aber ganze Bibliotheken können darüber gebaut werden (genau wie Tweening-Bibliotheken in Flash), und Entwicklungsumgebungen können erstellt werden, die auf ein Canvas-Objekt ausgerichtet werden (ähnlich wie das Flash-Authoring-Tool) ).

Das ist schwer zu sagen, aber ich denke, der Grund dafür, dass wir noch nicht viele gute Authoring-Tools für Canvas gesehen haben, ist, dass Canvas immer noch ziemlich langsam ist, viele Funktionen von FlashPlayer fehlen und es Probleme mit der Verlangsamung gibt der Adoptionsprozess von HTML5 (zB Video-Codecs).

    
StapleGun 20.01.2011 04:28
quelle
1

Sie machen sich Sorgen um den "Code", aber wenn Sie Flash AS3 verwenden, können Sie sowieso viel Code schreiben.

Ich portiere ein kleines AS3-Spiel, das ich vor ein paar Jahren für Canvas gemacht habe, und bisher sehe ich keinen großen Unterschied zwischen den beiden. Canvas ist niedriger, viele nützliche Funktionen fehlen und Sie müssen sie erstellen, genau wie die oben erwähnte Box. Selbst Kreise sind nicht verfügbar, aber Sie können eine 4-5-Linien-Funktion erstellen, um einen Kreis zu zeichnen, also ist das nicht wirklich ein Problem.

Bisher gibt es drei Probleme, bei denen Flash besser ist:

  • Das Colorizing / Blending ist grundlegend (nur transparent und additiv sind wirklich nützlich), während Flash fast jeden Photoshop-Mischmodus zur Verfügung stellt.

  • Während Flash (nach jahrelangem Warten) großartig im Umgang mit Sound ist, ist das noch junge HTML5-Audio-Tag bisher wirklich schlecht.

  • Geschwindigkeit. Flash ist schneller als Canvas / JS auf demselben Computer.

Trotzdem tun die wichtigsten Browser-Anbieter ihr Bestes, um die Leistung und Funktionen zu verbessern, und viele Probleme werden angesprochen.

    
Omiod 19.01.2011 17:27
quelle
1

Das Gute und das Schlechte: Flash vs HTML5

Geschichte zuerst

Wie immer ist es gut, ein paar Fakten aus der Geschichte zu bekommen! Flash wurde Mitte der neunziger Jahre von der Firma Macromedia eingeführt. Zu dieser Zeit waren Webtechnologien nicht annähernd so, wie wir sie heute kennen. Um ehrlich zu sein, die Webseiten damals sahen aus wie Mist. Man könnte Websites mit Hilfe von Flash auf eine völlig neue Ebene bringen. Aus diesem Grund wurde Flash so populär und es ist, was es heute wird: ein beliebtes ergänzendes Browser-Plugin.

Dennoch können wir eine beeindruckende Entwicklung bei der Rechenleistung, dem Speicherplatz und der Geschwindigkeit der Internetverbindung beobachten. Mit dieser Entwicklung kamen neue Webstandards und neue Browser mit umfangreichen Funktionen. Natürlich haben wir auch das Leben von JavaScript und CSS mit der Zeit gesehen. Das starke Trio aus HTML / XHTML, CSS und JavaScript ist die Grundlage von HTML5. Neue und aufregende Funktionen bilden den Kern von HTML5. Ich lade Sie eindringlich dazu ein, das erste Kapitel von HTML5 für Webdesigner zu lesen.

Sehr, sehr anders

Um eine Website mit Flash-Komponenten erstellen zu können, muss man Macromedia / Adobe Flash haben (Macromedia wurde von Adobe gekauft). Ich muss zustimmen, dass es möglich ist, großartige Sachen mit Flash zu machen, aber es ist dramatisch teuer geworden! Wir müssen uns fragen, ob diese Software wirklich die Mühe wert ist ...

Schließlich sind Flash-Komponenten proprietär, und einige würden sagen, dass sie die offene Natur des World Wide Web (WWW) brechen. Meiner bescheidenen Meinung nach kann Flash eine Website leicht aufblähen, da die Komponenten normalerweise viel Bandbreite benötigen. Denken Sie über mögliche Nutzer in Ländern der Dritten Welt nach (es gibt mehr, als Sie vielleicht denken). Außerdem gab es mehrere Sicherheitsbedenken bezüglich Exploits und Schwachstellen (eine kurze cssline für einen.

Auf der anderen Seite erreicht die Browser-Technologie endlich einen Punkt, an dem sie HTML5 nutzen kann, um das zu tun, was Flash in den letzten 17 Jahren getan hat. Wir haben nicht die vollen Möglichkeiten bestimmter Tags wie canvas gesehen, da HTML5 einige Zeit benötigt, um zu reifen. Tatsächlich ist es immer noch in Arbeit, denn es wird 2012 nur eine Kandidatenempfehlung sein und es wird eine vorgeschlagene Empfehlung im Jahr 2022 sein. Vielleicht können Sie beginnen zu sehen, wie unterschiedlich Flash und HTML5 voneinander sind.

>

Das Ende der Geschichte

Ich glaube, dass Ihnen etwas fehlt, weil Sie HTML5 und das Canvas-Tag nicht kennen.

Schauen Sie sich diese HTML5 vs Flash Website für Demos an. Vielleicht können Sie mit Hilfe dieser Website eine Meinung abgeben (es wäre am besten, einen modernen Browser wie Chrome, Safari und Opera zu verwenden). Bitte seien Sie unvoreingenommen, da HTML5 im Vergleich zu Flash noch sehr jung ist. Übrigens, haben Sie von etwas namens WebGL gehört?

    
Alerty 20.01.2011 04:02
quelle

Tags und Links