Viewer-SDK-Tutorial viewer-sdk-tutorial
Das Viewer-SDK bietet eine Reihe von JavaScript-basierten Komponenten für die benutzerdefinierte Viewer-Entwicklung. Die Viewer sind webbasierte Anwendungen, mit denen von Adobe Dynamic Media bereitgestellte Rich-Media-Inhalte in Webseiten eingebettet werden können.
Das SDK bietet beispielsweise interaktives Zoomen und Schwenken. Darüber hinaus erhalten Sie eine 360°-Ansicht und Videowiedergabe von Assets, die über die Backend-Anwendung Dynamic Media Classic auf Adobe Dynamic Media hochgeladen wurden.
Obwohl die Komponenten auf HTML5-Funktionen basieren, sind sie für die Verwendung auf Android™- und Apple iOS-Geräten sowie Desktops, einschließlich Internet Explorer und höher, ausgelegt. Diese Art von Erlebnis bedeutet, dass Sie einen einzigen Workflow für alle unterstützten Plattformen bereitstellen können.
Das SDK besteht aus UI-Komponenten, aus denen Viewer-Inhalte bestehen. Sie können diese Komponenten über CSS gestalten und nicht über Benutzeroberflächen-Komponenten verfügen, die eine unterstützende Rolle haben, z. B. Abrufen und Analysieren von Set-Definitionen oder Tracking. Das Verhalten aller Komponenten kann mithilfe von Modifikatoren angepasst werden, die Sie auf verschiedene Weise angeben können, z. B. als name=value
-Paare in der URL.
Dieses Tutorial enthält die folgende Reihenfolge von Aufgaben, mit denen Sie einen einfachen Zoom-Viewer erstellen können:
- Laden Sie das neueste Viewer-SDK von Adobe Developer Connection herunter
- Laden des Viewer-SDK
- Hinzufügen des Stils zum Viewer
- Einschließen von Container und ZoomView
- Hinzufügen von MediaSet- und Farbfeldkomponenten zum Viewer
- Hinzufügen von Schaltflächen zum Viewer
- Vertikale Konfiguration der Farbfelder
Herunterladen des neuesten Viewer-SDK aus Adobe Developer Connection section-84dc74c9d8e24a2380b6cf8fc28d7127
-
Laden Sie das neueste Viewer-SDK von Adobe Developer Connection herunter.
note note NOTE Sie können dieses Tutorial abschließen, ohne das Viewer-SDK-Paket herunterladen zu müssen, da das SDK remote geladen wird. Das Viewer-Paket enthält jedoch zusätzliche Beispiele und ein API-Referenzhandbuch, das Sie bei der Erstellung Ihrer eigenen Viewer unterstützen kann.
Laden des Viewer-SDK section-98596c276faf4cf79ccf558a9f4432c6
-
Richten Sie zunächst eine neue Seite ein, um den einfachen Zoom-Viewer zu entwickeln, den Sie erstellen werden.
Betrachten Sie diese neue Seite mit dem Bootstrap- oder Lader-Code, den Sie zum Einrichten einer leeren SDK-Anwendung verwenden. Öffnen Sie Ihren bevorzugten Texteditor und fügen Sie das folgende HTML-Markup ein:
code language-html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="user-scalable=no, height=device-height, width=device-width, initial-scale=1.0, maximum-scale=1.0"/> <!-- Hiding the Safari on iPhone OS UI components --> <meta name="apple-mobile-web-app-capable" content="yes"/> <meta name="apple-mobile-web-app-status-bar-style" content="black"/> <meta name="apple-touch-fullscreen" content="no"/> <title>Custom Viewer</title> <!-- Include Utils.js before you use any of the SDK components. This file contains SDK utilities and global functions that are used to initialize the viewer and load viewer components. The path to the Utils.js determines which version of the SDK that the viewer uses. You can use a relative path if the viewer is deployed on one of the Adobe Dynamic Media servers and it is served from the same domain. Otherwise, specify a full path to one of Adobe Dynamic Media servers that have the SDK installed. --> <script language="javascript" type="text/javascript" src="http://s7d1.scene7.com/s7sdk/2.8/js/s7sdk/utils/Utils.js"></script> </head> <body> <script language="javascript" type="text/javascript"> </script> </body> </html>
Fügen Sie den folgenden JavaScript-Code innerhalb des
script
-Tags hinzu, damit es denParameterManager
initialisiert. Auf diese Weise können Sie die Erstellung und Instanziierung von SDK-Komponenten innerhalb der FunktioninitViewer
vorbereiten:code language-javascript /* We create a self-running anonymous function to encapsulate variable scope. Placing code inside such a function is optional, but this prevents variables from polluting the global object. */ (function () { // Initialize the SDK s7sdk.Util.init(); /* Create an instance of the ParameterManager component to collect components' configuration that can come from a viewer preset, URL, or the HTML page itself. The ParameterManager component also sends a notification s7sdk.Event.SDK_READY when all needed files are loaded and the configuration parameters are processed. The other components should never be initialized outside this handler. After defining the handler for the s7sdk.Event.SDK_READY event, it is safe to initiate configuration initialization by calling ParameterManager.init(). */ var params = new s7sdk.ParameterManager(); /* Event handler for s7sdk.Event.SDK_READY dispatched by ParameterManager to initialize various components of this viewer. */ function initViewer() { } /* Add event handler for the s7sdk.Event.SDK_READY event dispatched by the ParameterManager when all modifiers are processed and it is safe to initialize the viewer. */ params.addEventListener(s7sdk.Event.SDK_READY, initViewer, false); /* Initiate configuration initialization of ParameterManager. */ params.init(); }());
-
Speichern Sie die Datei als leere Vorlage. Sie können jeden gewünschten Dateinamen verwenden.
Sie können diese leere Vorlagendatei als Referenz verwenden, wenn Sie in Zukunft Viewer erstellen. Diese Vorlage funktioniert lokal und wenn sie von einem Webserver bereitgestellt wird.
Fügen Sie Ihrem Viewer jetzt Stil hinzu.
Hinzufügen von Stilen zum Viewer section-3783125360a1425eae5a5a334867cc32
-
Für diesen vollständigen Seiten-Viewer, den Sie erstellen, können Sie einige grundlegende Stile hinzufügen.
Fügen Sie den folgenden
style
-Block am unteren Rand deshead
hinzu:code language-html <style> html, body { width: 100%; height: 100%; } body { /* Remove any padding and margin around the edges of the browser window */ padding: 0; margin: 0; /* We set overflow to hidden so that scroll bars do not flicker when resizing the window */ overflow: hidden; } </style>
Schließen Sie nun die Komponenten Container
und ZoomView
ein.
Einschließen von Container und ZoomView section-1a01730663154a508b88cc40c6f35539
-
Erstellen Sie einen tatsächlichen Viewer, indem Sie die Komponenten
Container
undZoomView
einschließen.Fügen Sie die folgenden
include
-Anweisungen am Ende des Elements<head>
ein - nachdem das Skript Utils.js geladen wurde:code language-javascript <!-- Add an "include" statement with a related module for each component that is needed for that particular viewer. Check API documentation to see a complete list of components and their modules. --> <script language="javascript" type="text/javascript"> s7sdk.Util.lib.include('s7sdk.common.Container'); s7sdk.Util.lib.include('s7sdk.image.ZoomView'); </script>
-
Erstellen Sie jetzt Variablen, um auf die verschiedenen SDK-Komponenten zu verweisen.
Fügen Sie die folgenden Variablen oben in der anonymen Hauptfunktion hinzu, direkt über
s7sdk.Util.init()
:code language-javascript var container, zoomView;
-
Fügen Sie Folgendes in die Funktion
initViewer
ein, damit Sie einige Modifikatoren definieren und die entsprechenden Komponenten instanziieren können:code language-javascript /* Modifiers can be added directly to ParameterManager instance */ params.push("serverurl", "http://s7d1.scene7.com/is/image"); params.push("asset", "Scene7SharedAssets/ImageSet-Views-Sample"); /* Create a viewer container as a parent component for other user interface components that are part of the viewer application and associate event handlers for resize and full-screen notification. The advantage of using Container as the parent is the component's ability to resize and bring itself and its children to full-screen. */ container = new s7sdk.common.Container(null, params, "s7container"); container.addEventListener(s7sdk.event.ResizeEvent.COMPONENT_RESIZE, containerResize, false); /* Create ZoomView component */ zoomView = new s7sdk.image.ZoomView("s7container", params, "myZoomView"); /* We call this to ensure all SDK components are scaled to initial conditions when viewer loads */ resizeViewer(container.getWidth(), container.getHeight());
-
Damit der obige Code ordnungsgemäß ausgeführt werden kann, fügen Sie einen
containerResize
-Ereignishandler und eine Hilfsfunktion hinzu:code language-javascript /* Event handler for s7sdk.event.ResizeEvent.COMPONENT_RESIZE events dispatched by Container to resize various view components included in this viewer. */ function containerResize(event) { resizeViewer(event.s7event.w, event.s7event.h); } /* Resize viewer components */ function resizeViewer(width, height) { zoomView.resize(width, height); }
-
Zeigen Sie eine Vorschau der Seite an, damit Sie sehen können, was Sie erstellt haben. Ihre Seite sollte wie folgt aussehen:
Fügen Sie nun die Komponenten MediaSet
und Swatches
zu Ihrem Viewer hinzu.
Hinzufügen von MediaSet- und Farbfeldkomponenten zum Viewer section-02b8c21dd842400e83eae2a48ec265b7
-
Um Benutzern die Möglichkeit zu geben, Bilder aus einem Set auszuwählen, können Sie die Komponenten
MediaSet
undSwatches
hinzufügen.Fügen Sie das folgende SDK hinzu:
code language-javascript s7sdk.Util.lib.include('s7sdk.set.MediaSet'); s7sdk.Util.lib.include('s7sdk.set.Swatches');
-
Aktualisieren Sie die Variablenliste mit folgendem Code:
code language-javascript var mediaSet, container, zoomView, swatches;
-
Instanziieren Sie die Komponenten
MediaSet
undSwatches
innerhalb der FunktioninitViewer
.Stellen Sie sicher, dass Sie die
Swatches
-Instanz nach den KomponentenZoomView
undContainer
instanziieren. Andernfalls wird dieSwatches
durch die Stapelreihenfolge ausgeblendet:code language-javascript // Create MediaSet to manage assets and add event listener to the NOTF_SET_PARSED event mediaSet = new s7sdk.set.MediaSet(null, params, "mediaSet"); // Add MediaSet event listener mediaSet.addEventListener(s7sdk.event.AssetEvent.NOTF_SET_PARSED, onSetParsed, false); /* create Swatches component and associate event handler for swatch selection notification */ swatches = new s7sdk.set.Swatches("s7container", params, "mySwatches"); swatches.addEventListener(s7sdk.event.AssetEvent.SWATCH_SELECTED_EVENT, swatchSelected, false);
-
Fügen Sie nun die folgenden Ereignis-Handler-Funktionen hinzu:
code language-javascript /* Event handler for the s7sdk.event.AssetEvent.NOTF_SET_PARSED event dispatched by MediaSet to assign the asset to the Swatches when parsing is complete. */ function onSetParsed(e) { // set media set for Swatches to display var mediasetDesc = e.s7event.asset; swatches.setMediaSet(mediasetDesc); // select the first swatch by default swatches.selectSwatch(0, true); } /* Event handler for s7sdk.event.AssetEvent.SWATCH_SELECTED_EVENT events dispatched by Swatches to switch the image in the ZoomView when a different swatch is selected. */ function swatchSelected(event) { zoomView.setItem(event.s7event.asset); }
-
Positionieren Sie die Farbfelder am unteren Rand des Viewers, indem Sie dem Element
style
die folgende CSS hinzufügen:code language-css /* Align swatches to bottom of viewer */ .s7swatches { bottom: 0; left: 0; right: 0; height: 150px; }
-
Vorschau des Viewers
Beachten Sie, dass sich die Farbfelder unten links im Viewer befinden. Damit die Farbfelder die gesamte Viewer-Breite annehmen, fügen Sie einen Aufruf hinzu, um die Größe der Farbfelder manuell zu ändern, sobald der Benutzer die Größe seines Browsers ändert. Fügen Sie der Funktion
resizeViewer
Folgendes hinzu:code language-javascript swatches.resize(width, swatches.getHeight());
Ihr Viewer sieht nun wie das folgende Bild aus. Versuchen Sie, die Größe des Browser-Fensters des Viewers zu ändern, und beachten Sie das daraus resultierende Verhalten.
Fügen Sie Ihrem Viewer jetzt Schaltflächen zum Vergrößern, Verkleinern und Zurücksetzen des Zooms hinzu.
Hinzufügen von Schaltflächen zum Viewer section-1fc334fa0d2b47eb9cdad461725c07be
-
Derzeit kann der Benutzer nur mit Klick- oder Berührungsgesten zoomen. Fügen Sie dem Viewer daher einige einfache Zoom-Schaltflächen hinzu.
Fügen Sie die folgenden Schaltflächenkomponenten hinzu:
code language-css s7sdk.Util.lib.include('s7sdk.common.Button');
-
Aktualisieren Sie die Variablenliste mit folgendem Code:
code language-javascript var mediaSet, container, zoomView, swatches, zoomInButton, zoomOutButton, zoomResetButton;
-
Schaltflächen unten in der Funktion
initViewer
instanziieren.Beachten Sie, dass die Reihenfolge wichtig ist, es sei denn, Sie geben den
z-index
in CSS an:code language-css /* Create Zoom In, Zoom Out and Zoom Reset buttons */ zoomInButton = new s7sdk.common.ZoomInButton("s7container", params, "zoomInBtn"); zoomOutButton = new s7sdk.common.ZoomOutButton("s7container", params, "zoomOutBtn"); zoomResetButton = new s7sdk.common.ZoomResetButton("s7container", params, "zoomResetBtn"); /* Add handlers for zoom in, zoom out and zoom reset buttons inline. */ zoomInButton.addEventListener("click", function() { zoomView.zoomIn(); }); zoomOutButton.addEventListener("click", function() { zoomView.zoomOut(); }); zoomResetButton.addEventListener("click", function() { zoomView.zoomReset(); });
-
Definieren Sie nun einige grundlegende Stile für die Schaltflächen, indem Sie dem Block
style
oben in Ihrer Datei Folgendes hinzufügen:code language-css /* define styles common to all button components and their sub-classes */ .s7button { position:absolute; width: 28px; height: 28px; z-index:100; } /* position individual buttons*/ .s7zoominbutton { top: 50px; left: 50px; } .s7zoomoutbutton { top: 50px; left: 80px; } .s7zoomresetbutton { top: 50px; left: 110px; }
-
Vorschau des Viewers Sie sollte wie folgt aussehen:
Konfigurieren Sie nun die Farbfelder so, dass sie vertikal auf der rechten Seite ausgerichtet sind.
Vertikale Konfiguration der Farbfelder section-91a8829d5b5a4d45a35b7faeb097fcc9
-
Sie können Modifikatoren direkt in der
ParameterManager
-Instanz konfigurieren.Fügen Sie oben in der Funktion
initViewer
Folgendes hinzu, damit Sie das Miniaturlayout fürSwatches
als einzelne Zeile konfigurieren können:code language-javascript params.push("Swatches.tmblayout", "1,0");
-
Aktualisieren Sie den folgenden Größenaufruf in
resizeViewer
:code language-javascript swatches.resize(swatches.getWidth(), height);
-
Bearbeiten Sie die folgende
s7swatches
-Regel inZoomViewer.css
:code language-css .s7swatches { top:0 ; bottom: 0; right: 0; width: 150px; }
-
Vorschau des Viewers Es sieht wie folgt aus:
Ihr einfacher Zoom-Viewer ist jetzt fertig.
Dieses Viewer-Tutorial behandelt die Grundlagen dessen, was das Dynamic Media Viewer SDK bietet. Bei der Arbeit mit dem SDK können Sie die verschiedenen Standardkomponenten verwenden, um mühelos Rich-View-Erlebnisse für Ihre Zielgruppen zu erstellen und zu gestalten.