krpano 1.19-pr16 (build 2018-04-04)

HTML 문서에 넣기(임베딩)

Krpano 뷰어를 HTML 페이지에 삽입하려면 핵심 'krpano.js' 스크립트 파일(파일 이름은 다를 수 있음)을 포함해야 하며 embedpano() 함수를 호출해야 한다. embedpano 함수는 브라우저 지원을 감지해서 사용할 krpano 뷰어(krpano HTML5 또는 krpano Flash 뷰어)를 결정한다. Krpano Flash 뷰어를 사용하는 경우, 내장 스크립트는 Flashplayer 및 각종 브라우저 결정사항과 해결 방법(: 지원되지 않는 시스템에서 Flash 내부의 마우스 휠 사용 활성화)도 적용되며, 이것은 krpano 뷰어를 임베딩 하는 것을 쉽고 간단하게 해줍니다 - 단 하나의 스크립트와 단 한 줄의 임베딩 코드면 충분합니다.

스크립트 삽입

krpano 스크립트 파일은 HTML 문서(embedpano() 사용 전에) 어느 곳이든 한 번은 작성돼 있어야 합니다:
<script src="krpano.js"></script>

몇가지 세부 사항 및 참고사항:
  • 'krpano.js' 파일 이름은 다르게 지어질 수 있습니다 - 예를 들면 MAKE PANO 또는 MAKE VTOUR 배치파일을 사용하면 각 타입에 맞게 'pano.js' 또는 'tour.js'로 생성됩니다..
  • 파일은 두가지 파트를 포합하고 있습니다- krpano 임베딩 스크립트와 krpano HTML5 뷰어입니다. krpano Flash 뷰어는 외부에 파일로 분리되어 있습니다(예 'krpano.swf' 파일).
  • 파일은 늘 동일합니다, 어떠한 파노라마나 투어에 관한 정보도 포함하지 않습니다,이것은 여러개의 파노라마 / 투어 또는 프로젝트에 공유할 수 있다는 것을 의미합니다.
    예를 들어 나중에 업데이트를 쉽게 하려면 krpano 뷰어와 플러그인 파일을 글로벌 폴더로 통일하고 다른 모든 프로젝트 파일은 링크로 연결하면 됩니다. 이렇게 하면 나중에 글로벌 krpano 폴더의 파일들만 업데이트하면 모든 프로젝트를 업데이트 할 수 있습니다.

뷰어 임베딩

html 문서의 원하는 곳에 뷰어가 들어갈 <div> 태그를 작성하고 고유한 'id'를 부여한 다음 css 스타일로 크기를 정의하십시오:
<div id="pano" style="width:100%;height:100%;"></div>

<div> 요소를 정의한 후 임베딩 스크립트 코드를 갖춘 <script> 코드를 작성하십시오.
임베딩 자체를 위한 전역 embedpano()함수가 있습니다:

embedpano({...embedding parameters...});
  • embedpano() 함수는 임베딩 파라미터를 갖춘 하나의 객체를 필요로 합니다.

  • 전체 예제:
    <script src="krpano.js"></script>
    
    <div id="pano" style="width:600px; height:400px;"></div>
    
    <script>
      embedpano({swf:"krpano.swf", xml:"pano.xml", target:"pano"});
    </script>

임베딩 파라미터

embedpano() 함수는 인수로 자바스크립트 객체를 필요로 합니다. 이 객체는 한쌍의 파라미터이름:값을 사용하여 모든 파라미터(임의 순서로)를 전달하는 데에 사용된다. 거의 모든 파라미터(target 파라미터 제외)는 선택 사항이다 - 정의되지 않은 경우에는 기본값이 사용된다.
파라미터 객체는 다음과 같은 설정을 제공합니다:

xml:"krpano.xml"
  • 시작 xml 파일의 이름과 경로 (html 파일과 관련됨).
  • 정의되지 않는 경우에는 .swf 파일의 이름이 사용됩니다 (예. 'krpano.swf'를 위한 'krpano.xml').
  • 시작 시 xml파일을 로드하지 않아야 하는 경우에는 null값을 사용할 수 있습니다.

target:"...pano-div-id..."
  • 뷰어가 들어갈 html 문서의 #id 요소.
  • target이 설정되지 않으면 'alert()' 오류가 발생합니다.

swf:"krpano.swf"
  • '.swf' 뷰어 파일의 이름과 경로 (html 파일과 관련됨).
  • 기본은 "krpano.swf" 입니다.
  • 이 파일은 Flashplayer만을 위한 것이며 HTML5만 사용할 것이라면 필요하지 않습니다.

id:"krpanoSWFObject"
  • 내부 뷰어 객체의 id.
  • 이것은 자바스크립트 인터페이스를 통해 뷰어에 접속하기 위한 객체입니다.
  • 기본은 "krpanoSWFObject"입니다.
  • 각 뷰어마다 고유의 id를 할당하는 것이 중요합니다!
  • 할당된 id를 가진 객체가 이미 있는 경우에는 내장된 스크립트에 의해서 고유 id가 될때까지 끝에 숫자를 추가할 것입니다.

bgcolor:"#000000"
  • 뷰어의 배경 색 (html 컬러 형식).
  • 기본은 "#000000" (=검정) 입니다.

html5:"auto"
  • krpano HTML5 뷰어를 사용하도록 설정.
  • 가능한 설정:
    • auto - 기본 설정 - krpano HTML5 뷰어를 자동으로 사용.
      이 설정은, 가능하다면 krpano HTML5 뷰어를 기본으로 사용 합니다(1.19 버전 이후 부터, 이전 버전은 Flash 뷰어가 기본이었음)! HTML5가 가능하지 않다면 Flash 뷰어로 대체해서 사용됩니다.
    • prefer - 가능한 경우 krpano HTML5 뷰어를 우선적으로 사용하고 그렇지 않은 경우에 Flash 뷰어 사용(1.19 버전부터 auto와 동일).
    • fallback - 가능한 경우 krpano Flash 뷰어를 우선적으로 사용. Flash를 사용하지 못할 경우에만 krpano HTML5 뷰어로 대체해서 사용.
    • only - krpano HTML5 뷰어만 사용 - krpano Flash 뷰어는 사용하지 않습니다.
      이 설정은, 가능한 경우 krpano HTML5 뷰어를 사용합니다. 시스템/브라우저가 HTML5를 지원하지 않는 경우 오류 메세지가 나타납니다.
    • always - 시스템과 브라우저가 필요한 기능을 지원하는지 여부에 관계없이 항상 krpano HTML5 뷰어를 사용합니다!
      주의 - 이 설정은 내부적인 테스트에만 사용하고 절대로 인터넷용으로 사용하지 마십시오!
    • never - krpano HTML5 뷰어는 사용하지 않고 krpano Flash 뷰어만 사용하게 합니다.
  • 부가적 확장 설정 (렌더링 방법을 제어하기 위함):
    • +webgl - WebGL을 사용할 수 있을 경우에만 krpano HTML5 뷰어를 사용합니다
      주의 - 일부 기능은 WebGL을 사용할 수 있을 때만 가능합니다 - 예. 파노라믹-비디오-지원t, WebVR-지원, 스테레오-렌더링, 구형 또는 원기둥형 이미지, 왜곡해서 보여줌 (어안, 소행성), ...
    • +css3d - WebGL 방식의 렌더링 대신에 CSS3D 방식의 렌더링을 우선적으로 사용합니다 (기본적으로 WebGL 사용 가능할 경우 준비됩니다). css3d설정은 내부적인 테스트에만 사용하고 절대로 인터넷용으로 사용하지 마십시오!
    사용 예제:
    • prefer+webgl - WebGL이 가능한 경우 krpano HTML5 뷰어를 사용하고 그렇지 않은 경우에는 Flash 뷰어를 사용.
    • only+webgl - WebGL이 가능한 경우 krpano HTML5 뷰어를 사용하고 그렇지 않은 경우에는 에러 메세지를 보여줍니다.

flash:""
  • krpano Flash 뷰어 사용 설정.
  • 기본적으로 html5 설정과 같습니다,정반대인 경우와 같으며 좀더 나은 url들을 사용할 수 있습니다, 예를 들면. html5=fallback 대신에 flash=prefer를 사용.
  • flash 셋팅이 설정되면, html5 설정에 연결되고 덮어쓰기 합니다.
  • 가능한 설정:
    • auto 또는 설정 없음 - html5 설정을 사용.
    • prefer - 가능한 경우에 krpano Flash 뷰어를 우선으로 사용합니다.
      krpano HTML5 뷰어는 단지 Flashplayer가 없고 시스템/브라우저가 HTML5에 호환될 경우에만 사용됩니다.
      이 설정은 html5=fallback과 연결됩니다.
    • fallback - 가능한 경우에 krpano HTML5 뷰어를 우선으로 사용합니다. krpano Flash 뷰어는 단지 HTML5를 사용할 수 없을 경우에만 대체해서 사용됩니다.
      이 설정은 html5=prefer와 연결됩니다.
    • only - 오로지 Flash 뷰어만 사용합니다 - krpano HTML5 뷰어는 사용하지 않습니다.
      이 설정은, 가능한 경우 krpano Flash 뷰어를 사용합니다. Flashplayer가 없는 경우에는 에러 메세지가 나타납니다.
      이 설정은 html5=never와 연결됩니다.
    • never - krpano Flash 뷰어는 사용하지 않고 krpano HTML5 뷰어만 사용하게 합니다.
      이 설정은 html5=only와 연결됩니다.

wmode:"..."
  • Flashplayer wmode 세팅 설정.
  • 가능한 설정:
    • window - Flashplayer 기본, 시스템 지원과 성능간의 절충. 주의 - 이 모드에서 일부 시스템과 브라우저의 html 요소는 Flashplayer와 겹쳐질 수 없습니다! 자세한 내용은 wmode 링크를 참고하십시오..
    • opaque - 모든 다른 html 요소를 Flashplayer와 겹칠 수 있습니다 (이 설정은 시스템과 브라우저에 따라서 다소 느려지거나 렌더링 속도를 다운시킬 수 있습니다).
    • opaque-flash - opaque와 같지만 Flashplayer에만 해당합니다 (HTML5 뷰어는 제외합니다 - HTML5 에 관한 내용은 아래를 참고하세요).
    • transparent - Flashplayer 배경을 투명하게 만들어서 html 요소가 배경에 깔려 보여지게 해주며 부가적으로 다른 html 요소가 Flashplayer와 겹칠 수 있게 해줍니다 (이 설정은 시스템과 브라우저에 따라서 다소 느려지거나 렌더링 속도를 다운시킬 수 있습니다).
    • transparent-flash - transparent와 같지만 Flashplayer에만 해당합니다 (HTML5 뷰어는 제외합니다 - HTML5 에 관한 내용은 아래를 참고하세요).
    • direct - 가장 좋은 성능, 하드웨어 가속 프리젠테이션, 많은 시스템과 브라우져에서 html 요소와 겹치게 할 수 없습니다 (이 설정은 통상적으로 가장 빠른 모드지만 호환성이 떨어지거나 오래된 시스템과 브라우저에서는 속도를 저하시키는 요인이 될 수 있습니다).
  • krpano는 wmode=direct를 기본으로 하지만, Chrome 브라우저는 예외 - wmode=window를 기본으로 사용(보다 나은 성능과 윈도우 크기를 변경하는 동안 나타나는 블랙 화면 현상을 없애기 위함).
  • HTML5 참고: wmode 설정은 통상 Flashplayer에 관한 설정입니다, 그러나 wmode=opaque와 wmode=transparent는 krpano HTML5 뷰어에도 유효하며 뷰어 배경을 투명하게 만들어 줍니다. html 요소와 겹치게 배열하는 것 역시 HTML5 뷰어에서 가능합니다.

localfallback:"http://localhost:8090"
  • file:// url을 가진 HTML5 컨텐츠가 실행될 때 몇몇의 브라우저(특히 Chrome과 Safari)는 데이터 파일을 직접적으로 로딩하는 것을 제지합니다! 이것은 krpano HTML5 뷰어에서 xml 파일과 plugin을 로딩하는데 영향을 줍니다.
  • 이런 케이스에 관한 더 많은 정보는 링크를 참고하세요 - Local Usage.
  • 이런 케이스에서 xml 로딩 에러를 피하기 위해, 내장된 스크립트는 이 경우 로딩이 가능한지의 여부를 체크합니다, 이것은 몇가지 경고 솔류선을 제공합니다.
  • 가능한 설정:
    • krpano Testing Server 주소 (기본 http://localhost:8090)
      • localfallback 셋팅이 krpano Testing Server (the default case)의 하나의 주소로 설정되고 이미 구동되고 있다면, 현재 페이지를 자동으로 테스팅 서버에 다시 보내서 로컬에서 사용할 수 있게 전체 기능을 풀어줍니다.
      • 테스팅 서버가 구동되지 않고 있다면, 에러 폴백 케이스가 사용됩니다.
    • flash - krpano Flash 뷰어 사용. Flashplayer는 로컬 브라우저 제약에 영향받지 않습니다.
    • error - 로컬 사용에 대한 에러와 정보를 보여줍니다.
      에러 메세지는 onerror 콜백으로 구성할 수 있습니다.
    • none - 로컬 제약을 무시하고 어찌 됐건 HTML5 뷰어를 시작합니다...

vars:{...}
  • krpano의 변수:값 한쌍을 가진 자바스크립트 객체 전달.
  • 변수는 xml 파일이 로드되고 해석된 후에 설정됩니다.
    그러므로 변수는 새로운 설정으로 더해질 수 있거나 xml에 이미 정의된 설정에 덮어 쓸 수 있습니다.
  • Example:
    var settings = {};
    settings["onstart"] = "trace('on start...')";
    settings["view.hlookat"] = 30;
    embedpano({xml:"pano.xml", target:"pano", vars:settings});

initvars:{...}
  • krpano의 변수:값 한쌍을 가진 자바스크립트 객체 전달.
  • 기본적으로 이것은 vars 설정과 동일합니다, 그러나 변수는 xml 파일이 로드되고 해석되기 전에 설정됩니다.
  • 이 설정의 주 용도는 xml 파일 내의 주소 경로안의 placeholders로 사용할 수 있는 커스텀 경로 변수를 설정하는 것이며/ 또는 <include> 요소를 위한 xml-if-checks 내에서 사용할 수 있는 변수를 설정하는 것입니다.
  • Example:
    embedpano({..., initvars:{mypath:"./panos1/"} });
    XML:
    url="%$mypath%image.jpg"
  • html 파일의 주소에서 http queries를 통해 직접 initvars 변수를 전달하려면 아래 구문을 사용하세요:
    tour.html?initvars.variable=value

basepath:...
  • krpano swf 파일에 상대적인 경로를 정의하기 위한 커스텀 베이스-경로 설정.
  • xml 파일 내의 상대 경로를 정의하기 위해 Flash와 HTML5에서 모두 사용할 수 있습니다.

consolelog:false
  • krpano의 로그/트레이스-메세지를 브라우저의 자바스크립트 콘솔에도 보내야 할 경우 정의하는 Boolean(참 또는 거짓, 1 또는 0) 설정.

mwheel:true
  • 마우스 휠 사용 여부에 대한 Boolean(참 또는 거짓, 1 또는 0) 설정.
  • true (기본)로 설정시, 마우스 휠 이벤트는 캡처되고 뷰어 영역에서 사용할 수 있습니다 (예를 들면. 확대/축소).
  • false로 설정시, 어떠한 마우스 휠 사용도 무시되며 브라우저는 기본 마우스 휠 기능으로 동작합니다 (일반적으로 웹페이지 스크롤).

capturetouch:true
  • 터치 이벤드의 캡처를 제어하는 Boolean 설정.
  • true (기본)로 설정시, 터치 이벤트는 캡처되고 뷰어 영역에서 사용할 수 있습니다 (예를 들면. 회전, 확대/축소).
  • false로 설정시, 터치 이벤트는 여전히 뷰어에서 사용하지만, 기본 이벤트 반응 또한 정지되지 않습니다. 이것은 이 경우 브라우져가 페이지를 회전하거나 확대/축소할 수도 있음을 의미합니다.

focus:true
  • 시작할 때 입력/키보드 포커스를 뷰어에 적용할 지 여부에 대한 Boolean 설정.
  • 설정하지 않을 시, 설정은 뷰어 크기에 따라 자동으로 설정됩니다 - 뷰어가 페이지 전체를 차지하면, focus는 true로 설정되고, 그렇지 않다면 false로 설정됩니다.
  • 이것은 HTML5 (모든 브라우저)와 Chrome 브라우져의 Flashplayer에서만 동작합니다. 다른 브라우저에서는 Flash 요소가 포커스 되려면 사용자가 먼저 클릭을 해야만 합니다.

webglsettings:{preserveDrawingBuffer:false, depth:false, stencil:false}
  • WebGL 컨텍스트 생성을 위한 특별한 설정을 가진 객체 전달.
  • WebGL 컨텍스트는 시작시 만들어지고 실행중에는 변경할 수 없습니다, 그러므로 이러한 설정들은 임베딩하는 동안에 미리 설정되어야 할 필요가 있습니다.
  • 가능한 설정:
    • preserveDrawingBuffer - 드로잉 버퍼 콘텐트를 유지합니다. toDataURL 또는 readPixels을 통해서 WebGL 캔바스의 스크린샷을 만들려면 활성화할 필요가 있습니다, 기본 설정은 false 입니다t.
    • depth - 뎁스 버퍼를 만듭니다, 기본 설정은 false 입니다. ThreeJS 플러그인을 올바르게 사용하려면 활성화할 필요가 있습니다.
    • stencil - 스텐실 버퍼를 만듭니다, 기본 설정은 false 입니다.
    • failIfMajorPerformanceCaveat - 렌더링 성능이 네이티브 어플리케이션의 OpenGL 렌더링 성능보다 현저히 낮을 경우 WebGL을 사용하지 마십시오, 기본 설정은 false 입니다.
  • 이 모든 설정은 성능과 메모리 관리 이유로 기본적으로 비활성으로 설정되었습니다. (특히 모바일 기기에서).

mobilescale:0.5
  • 기본적으로 모든 krpano 콘텐트는 모바일 기기에서 0.5배로 축소됩니다.
  • 이러한 스케일 변화를 비활성하려면, mobilescale을 1.0으로 설정하십시오.
  • 이것은 반응형 웹디자인을 구현하는 데 유용합니다.
  • 또한 xml의 stagescale 설정을 참고하십시오.

fakedevice:""
  • 가상 krpano device 결정 설정.
  • 가능한 설정: "mobile", "tablet", "desktop".
  • 주의 - 이 설정은 내부 테스트용으로만 사용하고, 절대 웹용으로 사용하지 마십시오!

onready:...Javascript-Function...
  • onready 설정은 임베딩이 완료되고 krpano 뷰어를 사용할 준비가 되었을 때 알림을 주어 어떤 콜-백-함수를 구성하도록 하는 데 사용합니다.
  • 주어진 함수는 krpano Javascript-Interface object와 함께 호출됩니다.
  • 예제:
    embedpano({target:"krpanoDIV", onready:krpanoReady});
    
    function krpanoReady(krpano)
    {
        krpano.call("trace(krpano is ready...)");
    }
  • Flashplayer 참고: 이 함수는 Flashplayer의 외부 인터페이스를 필요로 합니다! 이것은 오프라인/로컬에서 콜-백이 실행되려면 Flashplayer의 보안설정이 조정된 경우에만 가능하다는 것을 의미합니다. 자세한 내용은 링크를 참고하십시오- 로컬 / 오프라인 사용.

onerror:...Javascript-Function...
  • onerror 설정은 커스텀 임베딩-에러-핸들링 함수를 구성하는 데 사용할 수 있습니다.
  • 주어진 함수는 파라미터로서 에러-메세지 구문을 가지고 호출됩니다.

passQueryParameters:false
  • Boolean 설정. true로 설정 시, 모든 쿼리 파라미터는 html 주소로 부터 뷰어에 변수로 전달됩니다.s.
  • 활성화할 경우, html 주소에서 html5, flash, wmode, mobilescale, fakedevice 그리고 initvars 설정 등을 직접 전달하는 것이 가능합니다.
  • 사용의 예:
    tour.html?html5=only&startscene=scene2&initvars.design=flat

뷰어 삭제하기

html 페이지에서 파노라마 뷰어를 제거하려면 removepano() 함수를 용합니다! removepano() 함수는 내부적으로 부착된 모든 mouse-fixes (Flash)와 모든 DOM 요소 그리고 이벤트 (HTML5)를 제거합니다.


removepano(id);
  • removepano() 함수는 뷰어 객체의 고유 id 함께 호출되야 합니다.
  • 예제:
    embedpano({target:"panoDIV", id:"pano1"});
    
    ...
    
    removepano("pano1");