Normalerweise werden Flash- und Flex-Anwendungen in HTML eingebettet, indem entweder eine Kombination aus object
und embed
-Tags verwendet wird oder häufiger JavaScript verwendet wird. Wenn Sie jedoch direkt auf eine SWF-Datei verweisen, wird sie im Browserfenster geöffnet, und ohne in die Adressleiste zu schauen, können Sie nicht erkennen, dass sie nicht in HTML eingebettet ist, wobei die Größe auf 100% Breite und Höhe eingestellt ist. p>
In Anbetracht des Overheads von HTML, CSS und JavaScript, das zum Einbetten einer Flash- oder Flex-Anwendung benötigt wird, die 100% des Browserfensters ausfüllt, was sind die Nachteile einer direkten Verknüpfung mit der SWF-Datei? Was sind die Vorteile?
Ich kann mir einen Vorteil und drei Nachteile vorstellen: Sie brauchen nicht die mehr als 100 Zeilen HTML, JavaScript und CSS, die sonst benötigt werden, aber Sie haben keine Plugin-Erkennung, keine Versionsüberprüfung und Sie verlieren Ihre beste SEO-Option (progressive Verbesserung).
Aktualisieren lassen Sie sich nicht auf den mehr als 100 Zeilen aufhängen, ich meine einfach, dass die Menge an Code, die zum Einbetten einer SWF benötigt wird, sehr hoch ist (und Bibliotheken wie SWFObject einschließen) , und es ist nur für die Anzeige der SWF, die ohne eine einzige Zeile durch direkte Verknüpfung erfolgen kann.
Upside für die direkte Verknüpfung mit der SWF-Datei:
Nachteile:
Kurz gesagt, für eine komplizierte Anwendung - verwenden Sie immer HTML. Für einen einfachen Animationsfilm können Sie in beide Richtungen gehen.
Sie verlieren auch die externe Kontrolle über den SWF. Wenn es in HTML eingebettet ist, können Sie Javascript verwenden, um mit der SWF zu kommunizieren. Wenn die SWF-Datei direkt geladen wird, ist dies möglicherweise nicht möglich.
Ihr Zitat von 100 Zeilen scheint mir ziemlich hoch zu sein. Der HTML-Code, den FlashDevelop zum Einbetten einer SWF-Datei generiert, beträgt nur etwa 35 Zeilen, wobei eine einzelne swfobject.js-Datei enthalten ist. Sie sollten die js-Datei nicht berühren müssen, und höchstens den HTML-Code nur auf sehr geringfügige Weise anpassen müssen, damit er das tut, was Sie wollen.
Nach meiner Erfahrung behandeln nicht alle Browser dies richtig. Ich bin nicht wirklich sicher, warum (oder welche Browser), aber ich habe irrtümlicherweise solche Links gelegentlich an Kunden gesendet und sie sind oft verwirrt zurück gekommen. Ich vermute, ihr Browser fordert sie auf, die Datei herunterzuladen, anstatt sie korrekt anzuzeigen.
Ein Vorteil, den ich mir vorstellen kann, ist die Möglichkeit, GET-Parameter in der direkten URL der SWF anzugeben, die dann in der Flash-App verfügbar ist (über Application.application.parameters
in Flex, nicht sicher, wie Sie darauf zugreifen würden) Flash CS3). Dies kann natürlich auch mit anderen Mitteln erreicht werden, wenn Sie einen HTML-Wrapper haben, aber auf diese Weise ist es weniger Arbeit.
Weitere Vorteile:
Nachteile: Wie bei Popups im Allgemeinen, neigen die Browser dazu, die Größe, nach der Sie in window.open fragen, einfach zu überschreiben und wiederzuverwenden, was immer auf dem neuesten Stand ist. Sie müssen jedes geöffnete Popup schließen, damit das window.open ein neues create erstellt. Es wird kompliziert und ich konnte es nicht über mehrere Seiten einer Website hinweg zum Laufen bringen. Wer das erfolgreich gemacht hat, bitte posten wie!
Adobe sollte sich mit der Standard-Einbettung für sich selbst schämen, was die Konvention über die Konfiguration vereitelt. Überprüfen Sie ^ swfobject (wie oben erwähnt) oder swfin