회전

스핀 뷰어는 적절한 스핀 세트가 사용되는 경우 이미지의 360도 보기 또는 다차원 보기를 제공하는 이미지 뷰어입니다. 확대/축소 및 회전 도구, 전체 화면 지원 및 선택적 닫기 버튼이 있습니다. 데스크탑 및 모바일 장치에서 작동하도록 디자인되었습니다.

노트

IR(이미지 렌더링) 또는 UGC(사용자 생성 컨텐츠)를 사용하는 이미지는 이 뷰어에서 지원되지 않습니다.

뷰어 유형 503.

다음을 참조하십시오 시스템 요구 사항 및 사전 요구 사항.

데모 URL

https://s7d9.scene7.com/s7viewers/html5/SpinViewer.html?asset=Scene7SharedAssets/SpinSet_Sample&stagesize=500,400

회전 뷰어 사용

Spin Viewer는 런타임 시 뷰어가 다운로드한 기본 JavaScript 파일과 일련의 도우미 파일(단일 JavaScript에는 이 특정 뷰어, 에셋, CSS에서 사용하는 모든 뷰어 SDK 구성 요소가 포함됨)을 나타냅니다.

Spin Viewer는 IS-Viewer와 함께 제공되는 프로덕션 준비 HTML 페이지를 사용하는 팝업 모드나 문서화된 API를 사용하여 대상 웹 페이지에 통합되는 임베드된 모드 모두에서 사용할 수 있습니다.

구성 및 스키닝은 다른 뷰어의 것과 유사합니다. 모든 스키닝은 사용자 지정 CSS를 통해 수행할 수 있습니다.

다음을 참조하십시오 모든 뷰어에 공통되는 명령 참조 - 구성 속성모든 뷰어에 대해 공통되는 명령 참조 - URL

Spin Viewer와 상호 작용

Spin Viewer는 다른 모바일 애플리케이션에서 일반적인 다음과 같은 터치 제스처를 지원합니다. 뷰어가 사용자의 스와이프 제스처를 처리할 수 없는 경우 이벤트를 웹 브라우저에 전달하여 기본 페이지 스크롤을 수행합니다. 이 기능을 사용하면 뷰어가 장치 화면 영역의 대부분을 차지하는 경우에도 페이지를 탐색할 수 있습니다.

제스처

설명

두 번 탭

최대 확대율에 도달할 때까지 한 레벨로 확대합니다. 다음 더블 탭 제스처는 뷰어를 초기 시청 상태로 재설정한다.

핀치

이미지를 확대하거나 축소합니다.

수평 밀기 또는 튀기기

이미지가 재설정 상태이면 수평으로 세트를 통해 회전합니다.

이미지가 확대되면 이미지가 가로로 이동합니다. 이미지가 뷰 에지로 이동되고 스와이프가 그 방향으로 여전히 수행되면, 제스처는 네이티브 페이지 스크롤을 수행한다.

세로 밀기 또는 튀기기

이미지가 리셋 상태이면, 이는 다차원 스핀 세트가 사용되는 경우에 수직 뷰 각도를 변경한다. 1차원 스핀 세트에서, 제스처는 네이티브 페이지 스크롤을 수행한다. 또는, 다차원 스핀 세트가 마지막 또는 첫 번째 축에 있어서 수직 스와이프가 수직 시야각 변화를 초래하지 않는 경우, 제스처는 또한 네이티브 페이지 스크롤을 수행한다.

이미지가 확대되면 이미지가 세로로 이동합니다. 이미지가 뷰 에지로 이동되고 스와이프가 그 방향으로 여전히 수행되면, 제스처는 네이티브 페이지 스크롤을 수행한다.

노트

또한 뷰어는 터치 스크린과 마우스로 Windows 장치에서 터치 입력과 마우스 입력을 모두 지원합니다. 그러나 이 지원은 Chrome, Internet Explorer 11 및 Edge 웹 브라우저로만 제한됩니다.

이 뷰어는 키보드에 완전히 액세스할 수 있습니다.

다음을 참조하십시오 키보드 접근성 및 탐색.

스핀 뷰어 포함

웹 페이지마다 뷰어 동작에 대한 요구 사항이 다릅니다. 경우에 따라 웹 페이지에서 링크를 제공하여 선택하면 뷰어가 별도의 브라우저 창에서 열립니다. 다른 경우에는 호스팅 페이지에 뷰어 권한을 포함해야 합니다. 후자의 경우, 웹 페이지는 정적 페이지 레이아웃을 갖거나, 다른 디바이스에서 또는 다른 브라우저 창 크기에 대해 다르게 표시되는 반응형 디자인을 사용할 수 있습니다. 이러한 요구를 수용하기 위해 뷰어는 팝업, 고정 크기 임베딩 및 응답형 디자인 임베딩의 세 가지 기본 작업 모드를 지원합니다.

팝업 모드 정보

팝업 모드에서는 뷰어가 별도의 웹 브라우저 창 또는 탭에서 열립니다. 브라우저 크기가 조정되거나 모바일 장치의 방향이 변경되는 경우 전체 브라우저 창 영역을 가져와서 조정합니다.

팝업 모드는 모바일 장치에서 가장 일반적입니다. 웹 페이지는 다음을 사용하여 뷰어를 로드합니다. window.open() JavaScript 호출, 올바르게 구성됨 A HTML 요소 또는 임의의 다른 적절한 방법.

팝업 작업 모드에서는 기본 HTML 페이지를 사용하는 것이 좋습니다. 이 경우 라고 합니다. SpinViewer.html 및 다음 내에 위치함: html5/ 표준 IS-Viewers 배포의 하위 폴더:

<s7viewers_root>/html5/SpinViewer.html

사용자 지정 CSS를 적용하여 시각적 맞춤화를 수행할 수 있습니다.

다음은 새 창에서 뷰어를 여는 HTML 코드의 예입니다.

<a href="https://s7d1.scene7.com/s7viewers/html5/SpinViewer.html?asset=Scene7SharedAssets/SpinSet_Sample&stagesize=500,400"
target="_blank">Open popup viewer</a>

고정 크기 포함 모드 및 반응형 디자인 포함 모드 정보

내장 모드에서 뷰어는 기존 웹 페이지에 추가되며, 이 웹 페이지에는 뷰어와 관련이 없는 고객 콘텐츠가 이미 있을 수 있습니다. 뷰어는 일반적으로 웹 페이지의 부동산의 일부만 점유한다.

주요 사용 사례는 데스크탑 또는 태블릿 장치 중심의 웹 페이지와 장치 유형에 따라 레이아웃을 자동으로 조정하는 응답형 디자인 페이지입니다.

고정 크기 임베딩은 뷰어가 초기 로드 후 크기를 변경하지 않을 때 사용됩니다. 이 작업은 정적 레이아웃이 있는 웹 페이지에 가장 적합합니다.

반응형 디자인 포함에서는 뷰어가 컨테이너의 크기 변화에 반응하여 런타임에 크기를 조정해야 한다고 가정합니다 DIV. 가장 일반적인 사용 사례는 유연한 페이지 레이아웃을 사용하는 웹 페이지에 뷰어를 추가하는 것입니다.

반응형 디자인 포함 모드에서 뷰어는 웹 페이지의 컨테이너 크기 조절 방식에 따라 다르게 동작합니다 DIV. 웹 페이지에서 컨테이너의 폭만 설정하는 경우 DIV의 높이를 제한하지 않고, 뷰어는 사용되는 에셋의 종횡비에 따라 높이를 자동으로 선택합니다. 이 기능을 사용하면 에셋이 측면에 패딩 없이 보기에 완벽하게 맞습니다. 이 사용 사례는 Bootstrap 또는 Foundation과 같은 반응형 디자인 레이아웃 프레임워크를 사용하는 웹 페이지에 가장 일반적으로 사용됩니다.

그렇지 않으면 웹 페이지에서 뷰어의 컨테이너에 대한 너비와 높이를 모두 설정합니다 DIV, 뷰어는 해당 영역만 채우고 웹 페이지 레이아웃이 제공하는 크기를 따릅니다. 좋은 예는 뷰어를 모달 오버레이에 임베드하는 것일 수 있으며, 여기서 오버레이는 웹 브라우저 윈도우 크기에 따라 크기가 정해진다.

고정 크기 포함

다음을 수행하여 웹 페이지에 회전 뷰어를 추가합니다.

  1. 웹 페이지에 뷰어 JavaScript 파일 추가.

  2. 컨테이너 정의 DIV.

  3. 뷰어 크기를 설정하는 중입니다.

  4. 뷰어를 만들고 초기화하는 중입니다.

  5. 웹 페이지에 뷰어 JavaScript 파일 추가.

    뷰어를 만들려면 HTML 헤드에 스크립트 태그를 추가해야 합니다. 뷰어 API를 사용하기 전에 다음을 포함해야 합니다. SpinViewer.js. SpinViewer.js 은(는) 다음 아래에 있습니다. html5/js/ 표준 IS-Viewers 배포의 하위 폴더:

    <s7viewers_root>/html5/js/SpinViewer.js

    뷰어가 Adobe Dynamic Media 서버 중 하나에 배포되고 동일한 도메인에서 제공되는 경우 상대 경로를 사용할 수 있습니다. 그렇지 않으면 IS-Viewer가 설치된 Adobe Dynamic Media 서버 중 하나에 대한 전체 경로를 지정합니다.

    상대 경로는 다음과 같습니다.

     <script language="javascript" type="text/javascript" src="/s7viewers/html5/js/SpinViewer.js"></script>
    
    노트

    기본 뷰어 JavaScript만 참조 include 파일을 페이지에 넣습니다. 런타임 시 뷰어의 논리로 다운로드할 수 있는 웹 페이지 코드의 추가 JavaScript 파일을 참조하지 마십시오. 특히, HTML5 SDK를 직접 참조하지 마십시오 Utils.js 다음에서 뷰어에 의해 로드된 라이브러리 /s7viewers 컨텍스트 경로(소위 통합 SDK) include). 이유는 이(가) Utils.js 또는 유사한 런타임 뷰어 라이브러리는 뷰어의 논리에 의해 완전히 관리되며 뷰어 릴리스 간 위치가 변경됩니다. Adobe이 이전 버전의 보조 뷰어를 유지하지 않음 includes 서버에 있습니다.

    따라서 보조 JavaScript에 직접 참조 include 페이지의 뷰어에서 사용하는 는 향후 새 제품 버전이 배포될 때 뷰어 기능이 중단됩니다.

  6. 컨테이너 DIV 정의.

    뷰어를 표시할 페이지에 빈 DIV 요소를 추가합니다. DIV 요소의 ID는 나중에 뷰어 API로 전달되므로 이 ID가 정의되어 있어야 합니다.

    자리 표시자 DIV는 배치된 요소이며, 즉 position CSS 속성이 다음으로 설정됨 relative 또는 absolute.

    다음은 정의된 자리 표시자 DIV 요소의 예입니다.

    <div id="s7viewer" style="position:relative"></div>
    
  7. 뷰어 크기 설정

    다음에 대해 선언하여 뷰어의 정적 크기를 설정할 수 있습니다. .s7spinviewer 최상위 CSS 클래스(절대 단위)를 참조하거나 stagesize 수정자.

    CSS 내에서 직접 HTML 페이지나 사용자 지정 뷰어 CSS 파일에 크기를 지정할 수 있습니다. 나중에 Dynamic Media Classic의 뷰어 사전 설정 레코드에 할당되거나 스타일 명령을 사용하여 명시적으로 전달됩니다.

    다음을 참조하십시오 회전 뷰어 사용자 지정 CSS를 사용하여 뷰어를 스타일링하는 방법에 대한 자세한 내용.

    다음은 HTML 페이지에서 정적 뷰어 크기를 정의하는 예제입니다.

    #s7viewer.s7spinviewer {
     width: 640px;
     height: 480px;
    }
    

    다음을 설정할 수 있습니다. stagesize Dynamic Media Classic의 뷰어 사전 설정 레코드에 있는 수정자입니다. 또는 를 사용하여 뷰어 초기화 코드로 명시적으로 전달할 수 있습니다. params 또는 를 명령 참조 섹션에 설명된 대로 API 호출로 사용할 수 있습니다.

     spinViewer.setParam("stagesize",
    "640,480");
    

    CSS 기반 접근 방식이 권장되며 이 예제에서 사용됩니다.

  8. 뷰어를 만들고 초기화하는 중입니다.

    위의 단계를 완료하면 인스턴스를 s7viewers.SpinViewer 클래스에서 모든 구성 정보를 생성자에 전달하고 init() 뷰어 인스턴스의 메서드입니다. 구성 정보는 JSON 개체로 생성자에 전달됩니다. 최소한 이 개체에는 containerId 뷰어 컨테이너 ID의 이름과 중첩된 필드가 포함된 필드 params 뷰어가 지원하는 구성 매개 변수가 있는 JSON 개체입니다. 의 경우에는 params 이 개체에는 최소한 다음과 같이 전달된 이미지 제공 URL이 있어야 합니다. serverUrl 속성 및 초기 에셋 asset 매개 변수. JSON 기반 초기화 API를 사용하면 단일 코드 행으로 뷰어를 만들고 시작할 수 있습니다.

    뷰어 코드가 ID로 컨테이너 요소를 찾을 수 있도록 뷰어 컨테이너를 DOM에 추가해야 합니다. 일부 브라우저는 웹 페이지가 끝날 때까지 DOM 빌드를 지연합니다. 호환성을 최대화하려면 init() 닫기 직전 메서드 BODY 태그 또는 본문에 onload() 이벤트.

    동시에 컨테이너 요소는 아직 웹 페이지 레이아웃의 일부가 아니어야 합니다. 예를 들어 를 사용하여 숨길 수 있습니다. display:none 스타일이 할당되었습니다. 이 경우 뷰어는 웹 페이지가 컨테이너 요소를 레이아웃으로 다시 가져오는 순간까지 초기화 프로세스를 지연합니다. 이 작업이 발생하면 뷰어 로드가 자동으로 다시 시작됩니다.

    다음은 뷰어 인스턴스를 만들어 필요한 최소 구성 옵션을 생성자에 전달하고 init() 메서드를 사용합니다. 이 예제에서는 다음과 같이 가정합니다 spinViewer 는 뷰어 인스턴스이며, s7viewer 은 자리 표시자의 이름입니다. DIV, http://s7d1.scene7.com/is/image/ 는 이미지 제공 URL이고, Scene7SharedAssets/SpinSet_Sample 는 에셋입니다.

    <script type="text/javascript">
    var spinViewer = new s7viewers.SpinViewer({
     "containerId":"s7viewer",
    "params":{
     "asset":"Scene7SharedAssets/SpinSet_Sample",
     "serverurl":"http://s7d1.scene7.com/is/image/"
    }
    }).init();
    </script>
    

    다음 코드는 고정된 크기로 Spin Viewer를 임베드하는 간단한 웹 페이지의 전체 예입니다.

    <!DOCTYPE html>
    <html>
    <head>
    <script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/SpinViewer.js"></script>
    <style type="text/css">
    #s7viewer.s7spinviewer {
     width: 640px;
     height: 480px;
    }
    </style>
    </head>
    <body>
    <div id="s7viewer" style="position:relative"></div>
    <script type="text/javascript">
    var spinViewer = new s7viewers.SpinViewer({
     "containerId":"s7viewer",
    "params":{
     "asset":"Scene7SharedAssets/SpinSet_Sample",
     "serverurl":"http://s7d1.scene7.com/is/image/"
    }
    }).init();
    </script>
    </body>
    </html>
    

무제한 높이의 응답형 디자인 임베딩

반응형 디자인 임베딩을 사용하면 일반적으로 웹 페이지에는 뷰어 컨테이너의 런타임 크기를 지정하는 일종의 유연한 레이아웃이 있습니다 DIV. 이 예의 경우, 웹 페이지에서 뷰어의 컨테이너를 허용한다고 가정해 봅시다 DIV 웹 브라우저 창의 크기를 40% 줄이려면 높이를 제한 없이 유지하십시오. 결과 웹 페이지 HTML 코드는 다음과 같습니다.

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.holder {
 width: 40%;
}
</style>
</head>
<body>
<div class="holder"></div>
</body>
</html>

이러한 페이지에 뷰어를 추가하는 것은 고정 크기 포함과 유사하지만, 유일한 차이점은 뷰어 크기를 명시적으로 정의할 필요가 없다는 것입니다.

  1. 웹 페이지에 뷰어 JavaScript 파일 추가.
  2. 컨테이너 DIV 정의.
  3. 뷰어를 만들고 초기화하는 중입니다.

위의 모든 단계는 고정 크기 포함과 동일합니다. 컨테이너 추가 DIV 기존 " 보유자"에게 DIV. 다음 코드는 완전한 예입니다. 브라우저의 크기를 조정할 때 뷰어 크기가 어떻게 변경되는지, 뷰어 종횡비가 에셋과 어떻게 일치하는지 확인할 수 있습니다.

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/SpinViewer.js"></script>
<style type="text/css">
.holder {
 width: 40%;
}
</style>
</head>
<body>
<div class="holder">
<div id="s7viewer" style="position:relative"></div>
</div>
<script type="text/javascript">
var spinViewer = new s7viewers.SpinViewer({
 "containerId":"s7viewer",
"params":{
 "asset":"Scene7SharedAssets/SpinSet_Sample",
 "serverurl":"http://s7d1.scene7.com/is/image/"
}
}).init();
</script>
</body>
</html>

다음 예제 페이지에서는 무제한 높이로 포함된 응답형 디자인의 보다 실제 사용 사례를 보여 줍니다.

라이브 데모

대체 데모 위치

폭 및 높이가 정의된 유연한 크기 포함

폭과 높이가 정의된 유연한 크기의 포함이 있는 경우 웹 페이지 스타일이 다릅니다. 즉, "홀더"에 두 가지 크기를 모두 제공합니다 DIV 브라우저 창의 가운데로 정렬합니다. 또한 웹 페이지는 HTMLBODY 요소를 100%로 변환:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
html, body {
 width: 100%;
 height: 100%;
}
.holder {
 position: absolute;
 left: 20%;
 top: 20%;
 width: 60%;
height: 60%;
}
</style>
</head>
<body>
<div class="holder"></div>
</body>
</html>

나머지 임베딩 단계는 제한되지 않은 높이를 갖는 응답형 디자인 임베딩과 동일합니다. 결과 예제는 다음과 같습니다.

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/SpinViewer.js"></script>
<style type="text/css">
html, body {
 width: 100%;
 height: 100%;
}
.holder {
 position: absolute;
 left: 20%;
 top: 20%;
 width: 60%;
height: 60%;
}
</style>
</head>
<body>
<div class="holder">
<div id="s7viewer" style="position:relative"></div>
</div>
<script type="text/javascript">
var spinViewer = new s7viewers.SpinViewer({
 "containerId":"s7viewer",
"params":{
 "asset":"Scene7SharedAssets/SpinSet_Sample",
 "serverurl":"http://s7d1.scene7.com/is/image/"
}
}).init();
</script>
</body>
</html>

Setter 기반 API를 사용하여 포함

JSON 기반 초기화를 사용하는 대신 setter 기반 API 및 no-args 생성자를 사용할 수 있습니다. 해당 API 생성자는 매개 변수를 사용하지 않으며 를 사용하여 구성 매개 변수를 지정합니다. setContainerId(), setParam(), 및 setAsset() 별도의 JavaScript 호출을 사용한 API 메서드.

다음 예제는 setter 기반 API를 사용한 고정 크기 임베딩을 보여 줍니다.

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://s7d1.scene7.com/s7viewers/html5/js/SpinViewer.js"></script>
<style type="text/css">
#s7viewer.s7spinviewer {
 width: 640px;
 height: 480px;
}
</style>
</head>
<body>
<div id="s7viewer" style="position:relative"></div>
<script type="text/javascript">
var spinViewer = new s7viewers.SpinViewer();
spinViewer.setContainerId("s7viewer");
spinViewer.setParam("serverurl", "http://s7d1.scene7.com/is/image/");
spinViewer.setAsset("Scene7SharedAssets/SpinSet_Sample");
spinViewer.init();
</script>
</body>
</html>

이 페이지에서는