How can a full screen QTVR be created in Pano2VR?

Q&A about the latest versions
Post Reply
Keith Mackey
Posts: 5
Joined: Tue Jan 01, 2008 3:19 am

The new Mac version of Pano2VR is much appreciated. It may well provide the last link needed to transition from the Windows to Mac OS. I've played with the program all day and have searched the forum but cannot find a way to generate the file that was available under the Helpers tab of Pano2QTVR that would alllow creation of a fullscreen_quicktime.html file. Can this be done in Pano2VR and if so, how?

Keith
smooth
Posts: 1493
Joined: Sat Sep 09, 2006 7:30 pm

Full Window Yes, Full Screen NO for QTVR.

Flash on the other hand Full Window Yes, Full Screen Yes.

Regards, Smooth 8)
Image
Keith Mackey
Posts: 5
Joined: Tue Jan 01, 2008 3:19 am

Maybe my question is not clear. Let me try again.

Pano2QTVR has a "helper" tab that allows generation of an .html and a p2q_embed_object.js file that allows the QTVR to play in what the pulldown menu calls "fullscreen_quicktime.html". When this code is executed, the result is a much larger display of the QTVR which sizes itself to the users screen instead of being contained in window size specified on the "Settings" tab of Pano2QTVR. I really don't know if this is called full screen or full window. Which ever it is, I do know that I can't find a similar way to do it in Pano2VR. My questions are:

1. Does this function exist in Pano2VR?

2. If so, how is it accessed?

3. If not, are there plans to add it in the future?
smooth
Posts: 1493
Joined: Sat Sep 09, 2006 7:30 pm

Pano2QTVR can output the required HTML code to make the QTVR display full window (even though it says fullscreen). Thomas has stated that this option will be added to Pano2VR before the "final" 2.0 release.

It is not big deal anyway, you just need the code (javascript) to add to your own web page and your in business.

The code looks like this:

Add this to the <head> of your HTML

Code: Select all

<script type="text/javascript">
		<!--
			window.moveTo(0,0)
			window.resizeTo(window.screen.availWidth,window.screen.availHeight)
		// -->
		</script>
Add this to the <body> and insert your "panorama_name.mov"

Code: Select all

			<script language="javascript">
<!--
				if (window.p2q_Version) {
					p2q_EmbedQuicktime('panorama_name.mov','99%','99%',
					  'scale','tofit',
					  'controller','false');
				} else {
					document.writeln('<br><b>p2q_embed_object.js is not included! Please copy this file into your html directory.</b><br>');
				}
//-->
			</script>
			<noscript>
				<br><b>Please enable Javascript!</b></br>
			</noscript>
and make sure you upload a copy of p2q_embed_object.js to the same directory or set a path to it.

Code: Select all

/*  
    IE + ActiveX + EOLAS - Javascript workaround

	Author: 
		Thomas Rauscher <rauscher@pano2qtvr.com>
		http://www.pano2qtvr.com
		
	To embed a panorama just call one of these functions with 
	additional pairs for additional paramameters f.e:
	
	p2q_EmbedQuicktime('pano.mov','640','480','scale','tofit','background','#eeeeee');
	
	Use this file at your own risk
*/

window.p2q_Version	= 1.3;

function p2q_EmbedQuicktime(sFile,sWidth,sHeight) {
	document.writeln('<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"');
	document.writeln('  codebase="http://www.apple.com/qtactivex/qtplugin.cab"');
	document.writeln('  width="' + sWidth + '" height="' + sHeight + '" >');
	document.writeln('  <param name="src" value="' + sFile + '">');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  <param name="' + arguments[i] + '" value="' + arguments[i+1] + '">');
	}
	document.writeln('<embed width="' + sWidth + '" height="' + sHeight + '"');
	document.writeln('	pluginspage="http://www.apple.com/quicktime/download/"');
	document.writeln('	type="video/quicktime"');
	document.writeln('	src="' + sFile + '"');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  ' + arguments[i] + '="' + arguments[i+1] + '"');
	}
	document.writeln('	/>');
	document.writeln('</object>');
}

function p2q_EmbedSPiV(sFile,sWidth,sHeight) {
	document.writeln('<object id="SPi-V_object"	classid="clsid:166B1BCA-3F9C-11CF-8075-444553540000"');
	document.writeln('  codebase="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0"');
	document.writeln('  width="' + sWidth + '" height="' + sHeight + '" >');
	document.writeln('	<param name="src" value="SPi-V.dcr">');
	document.writeln('	<param name="swStretchStyle" value="stage">');
	document.writeln('	<param name="swRemote"       value="swContextMenu=' + "'" + 'FALSE' + "'" + '">');
	document.writeln('	<param name="progress"       value="true">'); 
	document.writeln('	<param name="logo"           value="false">'); 

	document.writeln('  <param name="swURL" value="' + sFile + '">');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  <param name="' + arguments[i] + '" value="' + arguments[i+1] + '">');
	}
	document.writeln('<embed name="SPi-V_object" width="' + sWidth + '" height="' + sHeight + '"');
	document.writeln('	pluginspage="http://www.macromedia.com/shockwave/download/"');
	document.writeln('	type="application/x-director" ');
	document.writeln('	swURL="' + sFile + '" ');
	document.writeln('	src="SPi-V.dcr" ');
	document.writeln('	swStretchStyle="stage" ');
	document.writeln('	swRemote="swContextMenu=' + "'" + 'FALSE' + "'" + '" ');
	document.writeln('	progress="true" ');
	document.writeln('	logo="false" ');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  ' + arguments[i] + '="' + arguments[i+1] + '"');
	}
	document.writeln('	/>');
	document.writeln('</object>');
}

function p2q_EmbedDevalVR(sFile,sWidth,sHeight) {
	document.writeln('<object classid="clsid:5D2CF9D0-113A-476B-986F-288B54571614"');
	document.writeln('  codebase="http://www.devalvr.com/instalacion/plugin/devalocx.cab#version=0,2,9,0"');
	document.writeln('  width="' + sWidth + '" height="' + sHeight + '" >');
	document.writeln('  <param name="src" value="' + sFile + '">');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  <param name="' + arguments[i] + '" value="' + arguments[i+1] + '">');
	}
	document.writeln('<embed width="' + sWidth + '" height="' + sHeight + '"');
	document.writeln('	pluginspage="http://www.devalvr.com/instalacion/plugin/install.html"');
	document.writeln('	type="application/x-devalvrx"');
	document.writeln('	src="' + sFile + '"');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  ' + arguments[i] + '="' + arguments[i+1] + '"');
	}
	document.writeln('	/>');
	document.writeln('</object>');
}

function p2q_EmbedFlash(sFile,sWidth,sHeight) {
	document.writeln('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"');
	document.writeln('  codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"');
	document.writeln('  width="' + sWidth + '" height="' + sHeight + '" >');
	document.writeln('  <param name="movie" value="' + sFile + '">');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  <param name="' + arguments[i] + '" value="' + arguments[i+1] + '">');
	}
	document.writeln('<embed width="' + sWidth + '" height="' + sHeight + '"');
	document.writeln('	pluginspage="http://www.macromedia.com/go/getflashplayer"');
	document.writeln('	type="application/x-shockwave-flash"');
	document.writeln('	src="' + sFile + '"');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  ' + arguments[i] + '="' + arguments[i+1] + '"');
	}
	document.writeln('	/>');
	document.writeln('</object>');
}


function p2q_EmbedPtviewer(sFile,sWidth,sHeight) {
	document.writeln('<applet code="ptviewer.class" archive="ptviewer.jar"'); 
	document.writeln('  width="' + sWidth + '" height="' + sHeight + '" >');
	document.writeln('	<param name="file" value="' + sFile + '">');
	for(i=3;i<arguments.length;i+=2) {
		document.writeln('  <param name="' + arguments[i] + '" value="' + arguments[i+1] + '">');
	}
	document.writeln('</applet>');
}

// Flash Player Version Detection - Rev 1.5
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;			
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
Simply copy the above script and paste it into "notepad" save the file as p2q_embed_object.js with Save as type set to "All Files"

Upload the panorama_name.mov the your_page.html and the p2q_embed_object.js to your server and bingo! Full Window QTVR Panorama.

Regards, Smooth 8)
Image
User avatar
thomas
Chief Gnome
Posts: 2617
Joined: Fri Sep 01, 2006 3:56 pm
Location: Vienna, Austria
Contact:

Keith Mackey wrote:The new Mac version of Pano2VR is much appreciated. It may well provide the last link needed to transition from the Windows to Mac OS. I've played with the program all day and have searched the forum but cannot find a way to generate the file that was available under the Helpers tab of Pano2QTVR that would alllow creation of a fullscreen_quicktime.html file. Can this be done in Pano2VR and if so, how?

Keith
No, but this is the next feature on the list so I hope to have the HTML export ready for beta5.
MfG, Thomas
Keith Mackey
Posts: 5
Joined: Tue Jan 01, 2008 3:19 am

Smooth:

Thanks very much for taking the time to provide such complete information. I'm sure that will bridge the gap until Thomas has a chance to release Beta5.

Keith
smooth
Posts: 1493
Joined: Sat Sep 09, 2006 7:30 pm

No Worries Keith,

If you get stuck let me know and I will see If I can help.

Regards, Smooth 8)
http://www.smooth360.info
Image
Post Reply