Vorwort Der Grund für das Schreiben dieses Artikels liegt hauptsächlich darin, dass der Teamleiter eine neue Anforderung gestellt hat: die Verwendung des Browsers zum Aufrufen der Kamera des Computers, um die Funktion zum sofortigen Aufnehmen von Fotos zu realisieren. Ich habe im Internet zahlreiche Informationen geprüft und mich aus verschiedenen Gründen letztendlich für die Verwendung des Flash-Plugins zum Aufrufen der PC-Kamera entschieden. Diese Anforderung basiert natürlich auf der B/S-Architektur, daher habe ich darüber nachgedacht, wie ich sie in die Front-End-HTML-Seite einbetten kann. Nicht zum Thema Natürlich wurde die Kapselung hier nicht berücksichtigt. Der Hauptzweck besteht zunächst darin, die Implementierung durchzuführen. Anschließende Arbeiten werden je nach Geschäft abstrahiert und in gemeinsame Komponenten gekapselt. Okay, genug Unsinn, kommen wir zum Punkt. Plugin einbetten Verwenden der Objekt- und Einbettungs-Tags Code-Schaufenster Code kopieren Der Code lautet wie folgt:<span style="font-family:Microsoft YaHei;"><div style="margin-top:-30px;margin-left:-120px;"> <Objekt-Klassen-ID="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" Codebasis="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" Breite="490" Höhe="390" ID="Ohne Titel-1" Ausrichtung="Mitte"> <param name="allowScriptAccess" value="sameDomain" /> <param name="Film" value="cam.swf" /> <param name="Qualität" value="hoch" /> <param name="bgcolor" value="#ffffff" /> <embed src="cam.swf" Qualität="hoch" bgcolor="#ffffff" Breite="490" Höhe="390" Name="cam" Ausrichtung="Mitte" allowScriptAccess="sameDomain" Typ="Anwendung/x-shockwave-flash" Pluginspage="http://www.macromedia.com/go/getflashplayer" /> </Objekt> </div></span> Diese Methode verwendet die Tags „Object“ und „Embed“. Sie können sehen, dass viele Parameter des Objekts und viele Attribute des Embeds wiederholt werden. Browserkompatibilität: Einige Browser unterstützen Objekte, andere unterstützen Einbettungen. Deshalb müssen Sie beim Ändern der Flash-Parameter beide Stellen ändern. Bei dieser Methode handelt es sich um die offizielle Methode von Macromedia, die die Funktionalität von Flash weitestgehend gewährleistet und keine Kompatibilitätsprobleme aufweist. Doch nun scheint es, als gäbe es immer noch große Probleme. Erstens kann es die Validierung nicht bestehen, da das aus Kompatibilitätsgründen eingebettete Embed-Tag nicht der W3C-Spezifikation entspricht. Ob Ihnen Standards egal sind oder nicht, ist natürlich eine andere Sache. Zweitens hat Microsoft aus verschiedenen Gründen den Verwendungsmodus von IE ActiveX nach SP2 eingeschränkt. Das heißt, im ActiveX auf der Seite befindet sich eine virtuelle Box, und der Benutzer muss einmal klicken, um normal interagieren zu können. Flash ist als ActiveX in die Webseite eingebettet und daher ebenfalls betroffen. Dieses Problem kann nur durch die Einbettung von Flash über JS gelöst werden. Auch hier gibt es keine Flash-Versionserkennung. Wenn die Flash-Plugin-Version des Browsers nicht ausreicht, wird Ihre SWF-Datei möglicherweise nicht normal angezeigt oder es erscheint ein ActiveX-Bestätigungsfenster für die Installation - dieses Fenster ist für viele Benutzer sehr beängstigend. Verwenden Sie nur das Objekt-Tag Code-Schaufenster Code kopieren Der Code lautet wie folgt:<span style="font-family:Microsoft YaHei;"><div style="margin-top:-30px;margin-left:-120px;"> <Objekttyp="Anwendung/x-shockwave-flash Daten="c.swf?Pfad=cam.swf" Breite="490" Höhe="390"> <param name="cam" value="c.swf?path=cam.swf" /> <img src="defqr.png" Breite="550" Höhe="400" alt="" /> </Objekt> </div></span> Diese Methode verwendet nur das Objekt-Tag, das eigentlich Flash-Satay ist. Da kein Embed-Tag vorhanden ist, kann die Überprüfung bestanden werden. Es ist eine Standardmethode zum Einbetten von Flash. Die Browserkompatibilität ist ebenfalls gut. Es sieht fast perfekt aus, aber es gibt immer noch Probleme. Zuerst benötigen Sie eine Halter-SWF, um Ihre Ziel-SWF zu laden und die Stream-Fähigkeit im IE sicherzustellen. Wenn Sie Parameter über Flashvars übergeben oder mit dem JS der Seite interagieren müssen, wird das sehr mühsam. Zweitens wird wie bei der ersten Methode ein ActiveX-Eingabeaufforderungsfenster ohne Versionserkennung angezeigt. Auch hier gilt, dass einige Browser mit niedrigeren Versionen (wie etwa Safari mit niedrigerer Version usw.) diesen Ansatz nicht erkennen und nicht damit kompatibel sind. Verwenden Sie nur das Embed-Tag Code-Schaufenster Code kopieren Der Code lautet wie folgt:<span style="font-family:Microsoft YaHei;"><div style="margin-top:0px;margin-left:-70px;"> <embed id="cam" src="cam.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="450" \u200b\u200bheight="350" name="webcam" align="middle" wmode="transparent" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=490&height=390&objid=cameradialog"> </div></span> Diese Methode verwendet nur das Embed-Tag. Verglichen mit der Wirkung ist es immer noch sehr gut. Die Browserkompatibilität ist ebenfalls gut und kann geladen werden. Da das Embed-Tag natürlich nicht den W3C-Spezifikationen entspricht, wird diese Methode nicht empfohlen. Einbetten mit JavaScript Es gibt viele Möglichkeiten, mit JS Flash-Plugins im Internet zu laden, und es stehen Ihnen auch viele gute JS-Plugins zur Auswahl. Ich werde SWFObject hier nur kurz vorstellen. Zuerst müssen Sie ein SWFObject-Plug-In-Paket herunterladen, das ein JS-Skript enthält. Dabei handelt es sich um die Skriptdatei, die Sie importieren müssen. Es enthält außerdem zwei HTML-Beispiele, die Sie nachahmen können. Natürlich können Sie auch die Website von SWFObject besuchen, um mehr zu erfahren. Klicken Sie hier. Code-Schaufenster Code kopieren Der Code lautet wie folgt:<span style="font-family:Microsoft YaHei;"><script type="text/javascript" src="swfobject.js"></script> <Skripttyp="text/javascript"> swfobject.registerObject("myId", "9.0.0", "cam.swf"); </script></span> Code kopieren Der Code lautet wie folgt:<span style="font-family:Microsoft YaHei;"><div style="margin-top:-30px;margin-left:-120px;"> <Objekt-ID="meineId" Klasse="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" Breite="490" Höhe="390"> <param name="Film" value="cam.swf" /> <!--[wenn !IE]>--> <Objekttyp="Anwendung/x-shockwave-flash" Daten="cam.swf" Breite="490" Höhe="390"> <!--<![endif]--> <div> <h1>Alternativer Inhalt</h1> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Adobe Flash Player herunterladen" /></a></p> </div> <!--[wenn !IE]>--> </Objekt> <!--<![endif]--> </Objekt> </div></span> Rendern ![]() Fazit <br />Im Vergleich zu diesen Methoden empfehle ich die Verwendung von JS-Einbettung zum Laden des Flash-Plugins. Diese Methode stellt nicht nur die Realisierung aller Funktionen von Flash sicher, sondern bietet auch eine gute Kompatibilität mit verschiedenen Browsern. JS kann auch erweiterte Funktionen bereitstellen und, was noch wichtiger ist, es kann von mehr Personen wiederverwendet werden, wodurch unnötiger redundanter Code reduziert wird. Plug-in-Downloadadresse: SWFObject |
<<: Installationstutorial auf Unternehmensebene unter Verwendung des LAMP-Quellcodes
>>: So erstellen Sie eine Baidu-Totlink-Datei
Code kopieren Der Code lautet wie folgt: <span...
Vorwort: In den vorherigen Artikeln wurde die Ver...
Detaillierte Erläuterung der Lösung für verstümme...
In diesem Artikel wird der spezifische Code für J...
Einführung: In vielen Fällen denken viele Leute, ...
Code kopieren Der Code lautet wie folgt: <!DOC...
Sie können dieses Logo lokal als .rar-Datei speic...
Legen Sie ein Hintergrundbild für die Tabelle fes...
Was ist eine Webseite? Die Seite, die nach dem HT...
Lassen Sie uns heute darüber sprechen, wie Sie mi...
Detaillierte Erklärung der Verwendung von DECIMAL...
Dieser Artikel stellt vor Online-Vorschau und Dow...
In diesem Artikel finden Sie eine ausführliche An...
Inhaltsverzeichnis Vorwort 1. Die Bedeutung der K...
Im vorherigen Blogbeitrag ging es um das private ...