You are on page 1of 30

krpano.com - krpano 1.0.8.14 - RELEASE NOTES ============================================================================= krpano 1.0.8.

14 New Features * New Plugin Interface for Flash and HTML5 o There is completely new plugin interface for krpano plugins (old plugins will still work of course). o The new plugin interface is designed to work and look very similar for Flash and Javascript plugins. In many cases the same code can be used. o There are new interface functions for accessing the krpano internal data structures (Arrays, Objects, Setter/Getters ...). o No need for a "krpano_as3_interface.as" and no global single krpano instance anymore. o Documentation and Examples: http://krpano.com/docu/plugininterface/ * Improved HTML5 Support o Improved Plugin/Hotspot Parent/Child System o Distorted Hotspots o Videoplayer Plugin o Sound-Interface Plugin o Combobox Plugin o Radar Plugin o Improved Textfield Plugin o Gyro Plugin from Aldo Hoeben o Improved Rendering performance when moving or scaling plugin/hotspot elements o iPhone/iPad-Simulator for testing krpano iPhone/iPad layouts * Improved Multi-Device Support o The "devices" attribute can now be used on all xml tags. o The supported devices are for the "devices" attribute are: + all - use this element on all devices (default) + flash - use this element only in the krpano Flashplayer viewer (Desktop and Android Flashplayer) + html5 - use this element only in the krpanoJS (HTML5) viewer + iphone - use this element only on the iPhone (and iPod Touch) + ipad - use this element only on the iPad + android - use this element only on an Android devices + desktop - use this element only on Desktop (Flash and HTML5) + mobile - use this element only on Mobiles + tablet - use this element only on Tablets + touchdevice - use this element only on Touch devices + gesturedevice - use this element only on Gesture devices o The current device can also be checked dynamically by action code by these global variables: + isflash - true only in the Flashplayer (Desktop and Android) + ishtml5 - true only in the krpanoJS (HTML5) viewer + isphone - true only on the iPhone 3/4 (and iPod Touch) + ispad - true only on the iPad + isandroid - true only on Android devices + isdesktop - true only on Desktop (Flash and HTML5) viewer + ismobile - true only on an iPhone/iPod and on Android Mobile + istablet - true only on an iPad and on Android Tablet devices + istouchdevice - true only on Touch devices (iPhone,iPad,Android) + isgesturedevice - true only on Gesture (Multi-Touch) devices

o Android Mobile/Tablet Detection On Android there is no real and reliable way to detected if an Android device is a Mobile Phone or a Tablet Device - so krpano uses the diagonal screen size as decision: When the screen size is... ... smaller than 6 inch then the device will be detected as Mobile. ... bigger than 6 inch then the device will be detected as Tablet. Notes About Android 3.* Tablets + The krpanoJS HTML5 viewer is now also ready for Android 3.* Tablets (when using the setting useHTML5("always") during embedding it could be already tested). The controls (including Multi-Touch) are working but the current Android Chrome Browser has still some graphic errors with the CSS 3D transforms (which can be only fixed by Google), so there is currently no automatic HTML5 usage on Android for the moment. * XML Encryption for Flash and HTML5 * XML Encryption for HTML5 Javascript Plugins o There is a new encryption system available which works for the krpano Flash AND for the krpano HTML5 viewer. o It's possible to encrypt xml files and additionally also Javascript plugin files. o At the moment there is only a 'public-key' encryption available, this means the encrypted files can be loaded and used by anyone, only their content is protected, a 'private-key' encryption where the key is binded to the license-key will come soon. o To encrypt the files the "krpano Protect Tool" or the kencrypt tool can be used. * Direct support for Panoramic videos (no special viewer version anymore) o Panoramic videos can now be loaded and controlled by videoplayer plugin and shown by the viewer. o The syntax is simple - define a normal <image> element with a sphere or cylindrical image and use "plugin:video" as url, where "video" is the name of the videoplayer plugin. * New independent Event handlers (via named '<events>' elements) o Additionally to the global <events> xml element it is possible to define own and independent <events name="myevents" ... /> elements. When a event will be dispatched then all <events> elements that have this event will be called. o These named <events> elements have also a "keep" attribute like <plugin> or <hotspot> elements. That means without keep="true" the <events> element will be removed when loading a new pano. o With these named <events> it's now possible to write xml or flash/js plugins that can listen to the krpano events without overwriting any other events in the xml. * New shorter xml syntax for cubical images o Instead of defining the urls for all sides separately it's now also possible to define the cube urls by a single line and using %s as placeholder for the cube side character. o Example syntax: (the "%s" will be replaced by "l,f,r,b,u,d") <image> <cube url="pano_%s.jpg" /> </image>

* New Actions, Parameters, new Events and new Variables o loadpano() action + The current <scene> elements will be removed when loading a new xml file. + To keep the scenes there is a new loading flag - KEEPSCENES. o New actions for looping / repeating actions: + for(startaction, condition, nextaction, loopaction) + asyncfor(startaction, condition, nextaction, loopaction) + loop(condition, loopaction) + asyncloop(condition, loopaction) o New Math object for mathematical constants and actions: + Math.PI + Math.abs(var) or Math.abs(result,v) + Math.acos(var) or Math.acos(result,v) + Math.asin(var) or Math.asin(result,v) + Math.atan(var) or Math.atan(result,v) + Math.atan2(result,a,b) + Math.ceil(var) or Math.ceil(result,v) + Math.cos(var) or Math.cos(result,v) + Math.exp(var) or Math.exp(result,v) + Math.floor(var) or Math.floor(result,v) + Math.log(var) or Math.log(result,v) + Math.max(var,var2) or Math.max(result,...vars) + Math.min(var,var2) or Math.min(result,...vars) + Math.pow(var,var2) or Math.pow(result,v1,v2) + Math.round(var) or Math.round(result,v) + Math.sin(var) or Math.sin(result,v) + Math.sqrt(var) or Math.sqrt(result,v) + Math.tan(var) or Math.tan(result,v) o The InOut and OutIn tween types (except easeInOutQuad) were externalized to the "moretweentypes" plugin. o Text-processing actions: + indexoftxt(dstvar,txt,searchtxt,startindex=0) # look for the offset from one text inside another text + subtxt(dstvar,srcvar,start,len) # action for extracting a part of text / variable (like the J avascript/Flash substr() function) o Optional 'non-blocking' lookto() action: + lookto(h,v,fov*,motiontype*,shortestway*,[nonblocking,donecall]*) # when "nonblocking" is set to true then the lookto action will be processed 'non-blocking' like a tween action # and when the lookto is done then the optional "donecall" action will be called o When looktohotspot() will be called without parameters from a hotspot event then automatically 'lookto' to current hotspot. o The tween motion types are now also available for the lookto() actions. Syntax: "tween(tweentype,time)" o New tween update callback function: + tween(var,dst,time,done,updatefu) + the updatefu code will be called after every variable change

o The tween actions are now using the "actionintervalbase" setting (that means they are more time accurate by default). o New "autoalpha" setting for plugin and hotspot elements - when set to "true", then visible will be automatically set to "false" when alpha is 0.0 and set back to "true" when alpha is bigger then 0.0. o New "debugmode" variable/setting. (true or false, default=false). The trace(0,...) messages from plugins or other AS3/JS code will be only shown when this variable is set to true. o New "control.touchtype" variable for touch devices (iPhone/iPad/ Android). Possible values = "drag2d" or "moveto", default="drag2d". o New "control.mouseyfriction" variable to control the sensitive of the vertical movement in the moveto control mode. o The "invalidatescreen()" action will now reset the idletime counter. o Architectural projection - smoother architectural to normal transition at nadir/zenith. o New "control.camrollreset" variable (true or false, default=true) to disable the resetting of the camroll in moveto / drag2d control mode. o The HIGHSHARP post-processing sharpening strengh is now adjustable via the "display.sharpen" variable (values from 0-14, default=12). o The default value for the "actionintervalbase" is now "timer" (like in HTML5 where no real frame-rate exists). o New variables and actions for pixel accurate plugin or hotspot sizes: + pixelwidth / pixelheight variables (read-only) these variables contain the final pixel size of the element, but note - they don't get updated immediately when changing the normal width/height/scale variables - the update happens after a screen refresh or when calling the updatepos() action of the element. + imagewidth / imageheight variables (read-only) these variables contain the original unscaled pixel size of the loaded image, this informations are first available after the onloaded event. + updatepos() action for updating / recalculating the position and size of the plugin/hotspot element immediately (the pixelwidth/ pixelheight variables will be updated after this call) o New plugin/hotspot "pixelhittest" variable (true or false, default=false) for enabling a pixel accurate hit testing which respects the transparency of the image instead of using the bounding box, but note - use this setting with care! this pixel hit-test is a much heavier operation than the normal/default bounding box check! o New "maskchildren" setting for plugin and hotspots elements - when set to true then all child elements that are outside of the parent element will be clipped/masked out. o New Events: + onviewchanged - this event will be called after the view update, in difference - the "onviewchange" will be called before and allow changing the view before final rendering. + onnewpano - this event will be called when there is a new pano image

and all informations (type,imagesize,hfov,vfov) about it are available. + onremovepano - this event will be called when the current pano will be removed (e.g. before loading a new pano). o New "events.dispatch(eventname)" action for dispatching / calling the events from all currently defined events tags. Dispatching any custom events is also possible!

Changes / Fixes - FLASH (krpano.swf) * The loadpano/loadscene/loadxml action can now be called anytime (no "loadpano busy" warnings anymore). * Fix: the onxmlcomplete, onpreviewcomplete, onloadcomplete, onnewpano and onremovepano events are now processed in the right order. * Fix: the onresize events is now called in the right order when using preload="true" for an element in a new loaded pano. * The progress bar animations are now inside the pano area by default, to get the old behavior with the progress bar at the stage level back use parent="STAGE" for the <progress> element. * Fix: When calling action code that was stored in variables or attributes then following actions were executed in the wrong order. * Fix: The action execution could be wrong in some situations after loadpano/loadscene/loadxml calls. * Fix: The named "onviewchange" events will now be called also without global "onviewchange" event. (bug only in beta/rc versions). * Show a Warning when switching to Fullscreen Mode is not possible because of a missing "allowFullscreen" embedding parameter. * Fix: When changing the url of a parent plugin element then the new loaded image was be shown above the children elements. * Better Mobile-Flashplayer detection (Android, Blackberry, ...). * Fix: The default "view.fovtype" on Android is now also "MFOV" (like on iPhone/iPad). * Fix: When fov and range limits in partial panos cause endless updating and high processor loads. * Fix: When using video panos via - url="plugin:video" - and the xml was located in a different folder the loading of the video failed. * Fix: No crash/hang anymore when using a 0x0 sized pano area. * Now there is "unknown tweentype" warning when trying to use a tweentype that doesn't exist. * Fix: The plugin size was wrong in the plugin register event (bug only in beta/rc versions). * Fix: The lookto action with an enabled shortway setting wasn't working correctly for partial panos. * Fix: Reloading embedded files could fail when they were removed from the internal cache. * The updateobject() action updates now also the prealign setting. * Fix: The scene onstart actions weren't working correctly when there were '&' or '=' characters in the onstart action code. * Fix: Calling txtadd() with non-existent variable as destination is possible now. * Fix: The plugin.changeorigin() action works now also for "prop" sizes. * Fix: The "qtvr.preview" setting was ignored. * Fix: plugin and hotspot elements had the wrong size when their size was defined with width="" or height="" in the xml. * Fix: The lookto / looktohotspot / moveto action don't work correctly on partial panos (they were trying to take the short way around the 360 degree wrap-around when possible).

* Fix: Problem with autorotate and partial panos or view limiting. * When using a maxpixelzoom setting together with very small images which would cause view limiting to extreme wide-angles then automatically disable the maxpixelzoom setting and limit the view to fov=90. * Fix: The HIGHSHARP display quality mode is now always working. * Fix: The lookto actions were not moving right when using atv coordinates outside the -90 to +90 range. * Fix: Calling actions like "element[get(...)].action(...)" - that means actions from an array element and using get() inside the array index were not possible. * Fix: When loading the same file two times at the same time and break loading one file (e.g. because of removing a plugin or hotspot) then the other file never completes loading. * Added support for the "crop" usage also for distorted hotspots. * Fix: Reset the hovering status to false when changing the url for a plugin or hotspot element. * Fix: When using preload="true" and changing the url of a plugin or hotspot then the following actions could fail. * Fix: The screentosphere and spheretoscreen actions were working wrong when they are were called before the first pano rendering. * Added an 'align' setting with pixel offsets to "looping()" progress animation function. * The default-xml will be now loaded from the same folder as the swf file, instead of the folder of the html file. * Fix: The if() action was working wrong when one of the comparing variable-names contains a EQ,LT,LE,GT,GE strings (uppercase only). * The display.currentfps variable returns now a more accurate framerate. * Fix: The release of keyboard keys and mouse buttons was not detected when the window loses the focus or becomes inactive. * Fix: On Android the mobile/tablet image detection was not working for the new <cube> syntax. * New "tweenintervalbase" setting to change the intervalbase for tween animations separately.

Changes / Fixes - HTML5 (krpanoJS / krpanoiphone.js) * Support for Distorted Hotspots Notes / Limitations: o The "zorder" should be between 0 and 100. o The distorted hotspots are always 'behind' the normal hotspots, mixing the order of distorted and normal hotspots is not possible. o There might be problems on some iOS 3.* (iPod) devices. There the CSS 3D transforms are partially buggy. * Support for the "bgcolor" and "wmode" embedding parameters. When wmode="transparent" or "opaque" then the viewer background will be transparent. And with the "bgcolor" parameter it is possible to set a different background color - the default color is "#000000" (=Black). * New "simulatedevice" variable that must be set during embedding to allow simulating an iPhone or iPad with their settings, images sizes and scalings. Possible settings are "iphone", "ipad" or "useragent" - when "useragent" is used then the current browser useragent will be used. This setting is used in the krpano iPhone/iPad layout simulator. * New "iosversion" variable to allow checking the iOS version dynamically. * Fix: The loadpano/loadscene/loadxml action can now be called anytime. * Fix: the onxmlcomplete, onpreviewcomplete, onloadcomplete, onnewpano and onremovepano events are now processed in the right order. * Fix: The action execution could be wrong in some situations after loadpano/loadscene/loadxml calls.

* Fix: When calling action code that was stored in variables or attributes then following actions were executed in the wrong order. * Fix: The view was set back to the default settings when loading a new pano without MERGE flag. * Improved: The HTML5 'Fullscreen' (=Fullwindow) mode works now in more situations. * Fix: The lookto action with shortway parameter was wrong (bug only in beta/rc versions). * Fix: When the krpano log was opened because of an error then the area for detection the closing gesture was still in 'open' detection mode. * Improved: Better Textfield Plugin Support: o remove the too big margin on <p> elements o avoid automatic scaling when using 0.*em font sizes o correct "roundedge" scaling on iPhone/iPad o improved autosize calculation o more accurate font size scaling o internal escaping/unescaping bugfix * added supported for "backgroundalpha" * Fix: The "onviewchange" event was called after rendering the pano but it should be called before rendering to allow changing the view. * The "control.usercontrol" setting is now also support on HTML5, possible settings are "all" or "mouse" or "off". * Fix: Reset viewing limits when loading a new pano. * Fix: The demo logo no longer click-able on desktop. * When two viewer instances were trying to use the same ID (like "krpanoSWFObject") then the viewer uses automatically an new ID instead of failing to load. * Fix: hotspot with percent (%) scaling had the wrong size. * Fix: setting the parent for <plugin> elements failed when the elements were defined in the wrong order. * Fix: iPhone4 and iOS5 - redraw graphics issues. * Fix: iOS5 floating point precision for positions and sizes. * Fix: iOS5 cube-edges fixes when using a non 1:1 page scaling. * Fix: The hotspot "edge" setting was ignored. * Fix: wrong movements when using - touchtype="moveto" - and doing gesture zooming at the same time. * Fix: The hotspots were scaled wrong on the iPhone. * Fix: updatescreen() and invalidatescreen() actions are now forcing a pano redraw. * Fix: plugin and hotspots images with parentheses characters in the url name were loaded correctly without errors but were not shown. * Fix: Javascript error when using if() without any parameters. * Now there is "unknown tweentype" warning when trying to use a tweentype that doesn't exist. * Added support for architectural projection. * Added support for the "showerrors" setting. * Fix: Several %SWFPATH% fixes. * Fix: The viewing limits when using limitview="range" were wrong. * Fix: catch and report Javascript errors when calling the js() action. * Increased iPod4 stability by limiting and automatically down-sampling the max. cubesize to 640x640 (the iPod 4 has too few memory for a stable use of 1024x1024 cube faces). * Fix: Interrupting works now also when clicking plugin or hotspots elements. * Fix: Detect mouse releases also outside an iframe. * Use automatically downscaled <tablet> images when there are no <mobil> or too large <mobile> images available on iPhone 3, iPod 2/3. * Fix: Crash/Hang when using the textfield plugin witout "htmlcode" setting. * Textfield plugin - using the "data:dataname" syntax to load the content from <data> elements is now possible for the "htmlcode" and "csscode"

* * * * * * * * * * * * * * *

settings (like in Flash). Fix: Problem with xml paths that contain slashes or # characters. Fix: The plugin.changeorigin() action works now also for "prop" sizes. Fix: Visible seam fix when using tiled images. Added support for KEEPVIEW flag. Support for mouse.x, mouse.y, mouse.stagex and mouse.stagey variables. Fix: The "onloaded" event was called even when the plugin/hotspot element was already removed. Fix: When using "rotate" for plugin elements they rotate around the wrong anchor point. Fix: In the looktohotspot() action the "fov" parameter was missing internally - that means all parameters were shifted one left. Fix: The lookto actions were not moving right when using atv coordinates outside the -90 to +90 range. Fix: Calling actions like "element[get(...)].action(...)" - that means actions from an array element and using get() inside the array index were not possible. Fix: There was a wrong loading error when changing the url of the plugin or hotspot element was changeing during loading and the old url was invalid. Fix: The if() action was working wrong when one of the comparing variable-names contains a EQ,LT,LE,GT,GE strings (uppercase only). Fix: Double events.onmouseup calling on Desktop. The "area.pixel*" variables are there available for reading. Fix: The "events.onresize" event will now be only called when the pixel size really changes.

Embedding Script (swfkrpano.js) * Pass the User-Agent of the browser to krpano in the "browser.useragent" variable. * Pass the "wmode" paramater also to krpanoJS viewer (when wmode="transparent" or wmode="opaque" then no background will be drawn). * Added support for the "bgcolor" parameter for createkrpanoJSviewer, createPanoViewer, embedPanoViewer and embedpano embedding functions. * New "useHTML5" parameter for the embedpano and createPanoViewer functions. * New "vars" object to pass viewer variables for the embedpano function. * New "wmode" setting for the embedpano function. * Embedding the krpanoJS viewer dynamically (via Javascript code) is now possible when the licenses are embedded into the .js file or when the krpanoJS license files were included manually into the html file. * New automatic HTML5 fallback when there is no Flashplayer installed, but a Safari Browser available (good for new Macs without pre-installed Flashplayer). * Removed useHTML5("whenpossible") support for Chrome (the CSS 3D transforms are buggy in the current Chrome versions). * Fix: the "addParam" function was not available in the 1.0.8.12 version and caused a Javascript error when trying to use it during embedding the krpanoJS viewer.

Plugins * Options Plugin Improved o New settings to change partial panos (projection, hfov, vfov, voffset, ...) interactively. o More clean layout.

o Controllable (open/close views) by xml actions. * Editor Plugin o Small improvements. o Hide some xml tags when they same still the default settings. o Updated xml code generation. * Google Maps Plugin o Complete internal redesign (but downward compatible). o Now almost every attribute/setting of the plugin can be changed dynamically. o New external license file to allow easier and quicker updating just by replacing the googlemaps.swf with the latest one. o Support of custom spot images and styles. o New additional controls. o New '3D' view mode. * Videoplayer Plugin o HTML5 support o Fix: "pausedonstart" and other loading issues - they were related to different Flashplayer version behaviors and different video format behaviors. o Fix: The size of the video was wrong for some video formats. o Fix: The "videourl" attribute will be now updated to the current video url after a playvideo(url) call. o Fix: The "time" attribute was not updated. o Fix: Short sound sample on paused-on-start videos. * SoundInterface Plugin o HTML5 support o Fix: soundinterface.js - unescape paths (bug only in beta/rc versions). o Fix: sounds with the same filename but different folders are working now. * Combobox Plugin o HTML5 support o Fix: combobox.js - missing additem() updates for native comboboxes (bug only in beta/rc versions). * Gyro Plugin (HTML5 only) o The Gyro plugin from Aldo Hoeben is now a real krpanoJS plugin and included in the download packages. * Radar Plugin o HTML5 support * MoreTweenTypes Plugin o To save .swf/.js file space some tween types (the most InOut and OutIn) the were externalized to the "moretweentypes" plugin. o Just include the plugin once to have all tween types back. * FPS Plugin o New attributes - "fontsize" and "textcolor" - for customizing the FPS text.

TOOLS

* All o o o o

krpano tools PSD / PSB read and write support (.psd, .psb) BigTIFF support (.btf, .tf8 or .bigtiff) Kolor Raw support (.kro) Fix: PSB writing problem with file sizes larger than 4GB.

* krpano Protect Tool (renamed kprotect tool) o HTML5 compatible xml encryption. o Option to backup encrypted files. o Parsing/resolving of <cube> images with %s placeholder. o Don't embed <tablet> and <mobile> images by default. * krpano Update Tool (new tool) o For updating krpano swf and js files. o Just the viewer code will be updated, any embedded data will be left unchanged. * kmakemultires Tool o When embedding the licenses is enabled but the viewer license not here/available, then automatically disable the license embedding instead of generating a demo version. o Allow specifying the config file also via a -config=### syntax. o Enable multires/tiled paths automatically for non-cube images when the maxsize setting from the config file is not large enough. o Generate thumbnails for all kind of pano types. o Automatically add device="flash" to scenes that are not html5 compatible. o Customizable temporary cube image format (e.g. converttocubeformat=kro). o Fix: The kmakemultires now returns also 'failed' (=1) as return value when the sphere to cube conversion failed. o New settings (tempdir,tempcubename) to customize the temporary files. o Better quality of cubical preview images (cube edge joint). * kmakepreview Tool o Better quality of cubical preview images (cube edge joint). * kprotectcl Tool o Allow building standalone windows exe files (when providing a Flashplayer projector exe file). * Updated Templates o MAKE OBJECT skin (objectskin.xml) with automatic adding and removing the object controls when loading new panos. o Small xml optimizing and fixes. o Fix: Add a stop check for the 'delayedcall' hotspot animation. * kencrypt Tool o Fix: Memleak. o Fix: Show error message when writing a file failed. * More settings for the "SPHERE to CUBE" and "CUBE to SPHERE" droplets by using new config file (convertdroplets.config). ----------------------------------------------------------------------------1.0.8.12 krpano.swf - new <area> mode "border" for aligning the area by defining borders

new txtadd(var,addtxt) action HIGHSHARP with Flash10 should work now always fix for dynamic url changing in onover/onout events fix for dynamic url changing between static and animated image in a distorted hotspot with refreshrate > 0 fixed roundval(val,0) rounding bug KEEPVIEW behavior change: - the KEEPVIEW flags works a bit different now - the current view will be saved before parsing the new xml the limitview and *lookatmin/max settings will NOT be saved - the <view> tag will be parsed always now to get new viewing limit settings if there are defined - restore the previously saved view after parsing - in previous krpano versions the parsing of the new <view> tag was completely skipped when using the KEEPVIEW flag, this has made it impossible to use new viewing limits for a new pano when using that flag new control.trackpadzoom setting for Android trackpad zooming new control.touchfirction setting for touch control friction the debug keys TAB and 9/0 are be disabled by default now, they are now only available when the krpano log is open zoomify level calculation for different zoomify versions decrypting encrypted files bugfix include resolving order bugfix - the included content was inserted at the wrong place in the xml fix for the IE browser where the mouse was hidden when using a custom cursor and the context menu 'prop' and percent sizes for distorted hotspots fixed tween/stoptween conflict between 'local' attributes and 'fullpath' attributes (e.g. tween(alpha,1); AND tween(hotspot[.].alpha,0); from the same hotspot) new multireslevel variable to get the current multires level the "network.retrycount" variable can be set from external (html/js) to set a higher value if nesecery already at startup new hotspot.getcenter(h,v) action for returing the center to variables Mac Flashplayer fullscreen hanging zoom key fix parallelized xml include loading for speedup loading new contextmenu.enterfs / exitfs settings for customizing the automatic fullscreen item new "devices" setting for plugin and hotspot elements for controlling where the element should appear new "alturl/altscale/altonloaded" setting for plugin and hotspot elements for defining alternatives for the HTML5/krpanoJS usage new "xml.scene" variable that holds the name of the current scene new parameters for the "updateobject(updateall*,updatefov*)" action the get() resolving for parameter works now also for the js() action changed "progress.showload" setting, now "auto" by default => auto = "none" for multires panos, "bar()" for normal panos now it's possible to add custom attributes to action, data, scene tags optimized for the Android Flashplayer: - it uses the <tablet> or <mobile> tags when available - drag2d will be used always as controlmode - pano zooming via trackpad possible - no mouse cursor will be displayed new isphone/ispad/isandroid/ishtml5/isflash variables to check dynamically for the current device

videoplayer plugin - fix for Flashplayer 10.1 video loading behavior - fix for local loading with pausedonstart=true

soundinterface plugin - changed behavior: stopallsounds(stopexternalsoundstoo=false) textfield plugin - new border setting html templates - html5 valid swfkrpano.js - createPanoViewer function - createkrpanoJSviewer function - createkrpanoSWFviewer function - embedpano / embedPanoViewer function - isHTML5possible function - useHTML5 function - embedding of krpanoiphone.js is possible krpanoJS / krpanoiphone.js - almost full xml/actions support - much more stable on the iPhone and iPad - sharper rendering on Desktop - uses the normal images on Desktop - the panos edges are fit correctly togehter - panos blending is possible but only with preview images - tiled panos are supported - cubestrip panos are supported - there is an automatic internal textfield plugin replacement - url bar hidding improved - not dot button anymore - more details on: http://krpano.com/iphone/ updated online documenations: http://krpano.com/docu/xml/ http://krpano.com/docu/actions/ http://krpano.com/docu/quickref/ http://krpano.com/docu/swfkrpanojs/ http://krpano.com/iphone/ http://krpano.com/docu/tutorials/ TOOLS droplets: - new MAKE VTOUR droplets for automatically building virtual tours - all droplets are using now the new embedlicenses=true setting to generate ready to use swf and js files with embedded liceneses - the swfkrpano.js html templates are all HTML5/iPhone/iPad compatible kmakemultires tool / new .config settings: - makescenes setting for automatic building virtual tours - makethumb settings for automatic building thumb images - multires setting for enabling building normal panos - leveldownload/leveldecode settings - progressiveloading setting - [NAME] placeholder for the xml template

[SCENES] placeholder for the xml template for makescene=true xmltemplate_view for using a xml file as view template xmltemplate_hotspot for using a xml file as hotspots template copyiphonejs setting for enabling/disabling the krpanoJS usage embedlicenses setting for automatically generating swf and js files with embedded licenses [NAME] placeholder for the html template [JS] placeholder for the html template (for using embedlicenses) htmltemplate_js setting (for using embedlicenses) all paths in the .config files are made relative to the .config file itself (before the paths were relative to the tool)

kcube2sphere tool - added a -jpegoptimize=false option to disable the jpeg optimizing ktransform tool - added cube32 / cube23 modes for generating 3x2 or 2x3 cubestrips naming changes: - "CUBE to SPHERE" droplet renamed to "Convert CUBE to SPHERE" - "SPHERE to CUBE (TIFF)" droplet renamed to "Convert SPHERE to CUBE (TIFF)" - "SPHERE to CUBE (JPEG)" droplet renamed to "Convert SPHERE to CUBE (JPEG)" - "MAKE MULTIFRAME (MULTIRES) droplet renamed to "MAKE MULTI FRAME PANO" - "MAKE OBJET (MULTIRES)" droplet renamed to "MAKE OBJECT" small fixes: - removed wait for keypress on fatal libjpeg error ----------------------------------------------------------------------------1.0.8.11 krpano.swf: - plugin/hotspot 'static' effect bugfix - qtvr - fovtype="VFOV" bugfix - start frame bugfix - 'decode_complete' error message bugfix (happens when removing a plugin before it has been loaded) - embedded files with ../ paths bugfix - parent="BGLAYER" (like parent="STAGE" at stage level but behind the pano) - added pow(var,byvar) and pow(dst,var,byvar) actions - new defaults: downloadqueues=4 and decodequeues=2 swfkrpano.js: - swfobject 1.5 copyright notice krpanoiphone.js - iPad 60 fps - xml parser syntax error message - hide the Safari url-bar on the iPhone - query parameters passing TOOLS kmakemultires - intelligent number sorting (1,2,..,10,11,.. and NOT 1,10,11,..,2,20,21,...) - swfobject 2.2 template (replaces the 2.1 template) - objectskin.xml - 'zoomed-out' detection improved

kprotect: - reset swfpath/htmlpath/basedir on startup-xml selection - skip moible/tablet files ----------------------------------------------------------------------------1.0.8.10 (state 2010-05-06, compared to beta 9) - beta state removed (1.0.8 beta 10 => 1.0.8.10) - added a Javascript/CSS based krpano viewer for the iPhone/iPad (krpanoiphone.js) swfkrpano.js - added automatic loading of iphone/ipad viewer (krpanoiphone.js) - passQueryParameters() function added - xhtml example swfkrpano.js / swfkrpanomousewheel (swfobject 1.5 and swfobject 2.2) - several fixes - allow mousewheel usage with wmode transparent/opaque - new test cases / examples swfobject 2.1 examples updated to swfobject 2.2 krpano.swf - get() can be used inside array indices's ('full variable paths' also allowed inside get()) - added Flashplayer 10 "colorcorrection" setting - added control.touchfriction setting (for the krpanoJS iPhone/iPad viewer) - added <image> - <mobile>/<tablet> tags (for the krpanoJS iPhone/iPad viewer) - added "haveexternalinterface" variable (see usage in mousewheel examples) - action parameter placeholders range increased to %0 - %99 - 'embeddedstartup' interface for loading krpano into other flash apps (experimental!) - add/sub/mul/div/mod actions with just two parameters: - add(var1,var2) => var1 = var1 + var2 - sub(var1,var2) => var1 = var1 - var2 - mul(var1,var2) => var1 = var1 * var2 - div(var1,var2) => var1 = var1 / var2 - mod(var1,var2) => var1 = var1 % var2 - IE/Flashplayer recursive resize bug workaround - empty <image> urls endless loading bugfix - video hotspot width/height settings bugfix - soundinterface - paused sound looping fix TOOLS Droplets: (available for Windows and Mac) - MAKE PANO (MULTIRES) - build automatic multi-resolution panoramas - spherical images will be automatically converted to cubical - used config file: kmakemultires.config - MAKE PANO (NORMAL) - build non-tiled, non-multi-resolution, 'normal' panoramas - spherical images will be automatically converted to cubical

- the default maximum cubesize is 2200 pixels - used config file: templates/normal.config - MAKE PANO (TILED) - only tile the panoramic images, no multi-resolution - spherical images will be automatically converted to cubical - used config file: templates/tiled.config - MAKE PANO (FLAT) - a especially for flat images optimized config/template - build flat multi-resolution, zoom-able images - full image view at the beginning - drag2D, drag-cursor and zoomtocursor enabled by default - the 'star' button will 'zoomout' to return to the initial view - used config file: templates/flat.config - MAKE PANO (SINGLE-SWF) - build a single all-in-one swf file - spherical images will be automatically converted to cubical - the default maximum cubesize is 2200 pixels - used config file: templates/singleswf.config - MAKE PANO (SINGLE-SWF-TILED) - build a single all-in-one swf - the panoramic image will be tiled for progressive loading - spherical images will be automatically converted to cubical - used config file: templates/singleswftiled.config - MAKE PANO (SINGLE-SWF-MULTIRES) - build a single all-in-one swf - the panoramic image will be tiled for progressive loading, - the number of levels will be limited to 2, more levels make more sense for dynamic (not embedded) loading, - spherical images will be automatically converted to cubical - used config file: templates/singleswfmultires.config - MAKE OBJECT (MULTIRES) - build a multi-resolution object movie - just drop a numbered collection of images on the droplet - used config file: templates/object.config - MAKE MULTIFRAME (MULTIRES) - build a multi-resolution and multi-frame pano - just drop a numbered collection of pano (spherical or cubical ones) on the droplet - spherical images will be automatically converted to cubical - used config file: templates/multiframe.config - MAKE PREVIEW (CUBESTRIP) - build a cubestrip preview image - support 1 spherical image or the 6 cubical faces as input - SPHERE to CUBE (JPEG) - convert spherical images to the 6 cube faces (saved as jpeg) - edit the droplet (with any text editor in Windows, or with the Apple Scripteditor in Mac) to change the jpeg compression settings - SPHERE to CUBE (TIFF) - convert spherical images to the 6 cube faces (saved as tiff)

- CUBE to SPHERE (TIFF) - convert the 6 cubical faces back to a spherical image better quality for the ktransform and kcube2sphere tools - bicubic interpolation is used now by default - as result the transformed images are sharper but the processing is a bit slower, to get the old speed use the "-fast" command line parameter 64bit versions of all command line tools - faster image processing - especially on large images when more than 2gb ram is installed new html/js templates: - swfkrpano.html and swfkrpano.js (the default now) - it's a combination of the swfobject 1.5 and swfkrpanomouse.js script plus a small addition for easier swf->html embedding - advantages: - only one external script file (faster loading) - easier embedding (the flash, fullscreen, mousewheel settings will be automatically set) - inlinejs.html - the same like swfkrpano.html and swfkrpano.js but the script is in-lined into the html file - no external js file - easier handling (only the html and the swf file) kcube2sphere tool - better transforming quality - fewer memory need - memory management (can process images that don't fit in memory) ktransfrom tool - better transforming quality - support also partial panoramic images (360x*) kencrypt tool (new) - a command line tool to encrypt external files - more details on "encryption" kprotectcl tool (new) - kprotect command line tool - build protected swf files with embedded files from command line or a script kmakemultires tool - integrated sphere-to-cube conversion (optional,customizable) - integrated files to swf embedding (with automatic lookat depending tiles sorting) - automatic license/swf copying - automatic license/swf renaming - filename/cubeside detection bugfixes - manual "-panotype=partialsphere" setting (hfov setting needed too) - optimized automatic tilesize calculation - new xml/html templates - new html template placeholders: [NAME], [SWF], [XML] - new xml template placeholders: [PREVIEW], [IMAGE], [HLOOKAT], [VLOOKAT], [PARTIALPANO] kprotect gui tool

reworked gui improved xml parsing and better file reference detection improved automatic file sorting more options for embedded files project loading/saving file encryption standalone size customizable

all tools - support for tiff files from Photoshop that are larger than 2gb - support for 16bit tiff files (read/write) - jpeg reading bugfixes encryption - encrypt external files with the kencrypt command line or the kprotect gui tool - only a 'protected' swf can load these encrypted files - how does it work? - the encryption key is generated from the tools license - note - the krpano/tools licenses are personalized and individually for every user, so every key is individually too - the key is divided into two parts - one part is stored in the protected swf file - and one part in the encrypted file - so only the protected swf can decrypt the files ----------------------------------------------------------------------------1.0.8 beta 9 VIEWER: - Flash10 support - automatically use of the new Flash10 rendering possibilities - without a Flashplayer 10 the standard Flash9 rendering is used - Flash10 allows a perfect 3D distorted drawing of "flat/linear" 3D images - for optimal quality and performance use cubical panorama images - the usage of Flash10 can be set/switched dynamically - for spherical and fisheye distorted panoramas the usage of Flash9 rendering is recommended for better performance - new parameters for <display> - flash10="on|off" - enable/disable Flash10 usage - movequality10="HIGH" - move quality setting for Flash10 - stillquality10="HIGH" - still quality setting for Flash10 - these parameters have no effect when using Flashplayer9 - direct support for QUICKTIME QTVR (.mov) files (at the moment only cubical) - xml usage: <image type="QTVR"> <qtvr url="pano.mov" setview="true" /> </image> - the "setview" attribute can be used to enable the using of the view settings from the mov file - direct support of ZOOMIFY images (ImageProperties.xml)

- xml usage: <image type="ZOOMIFY"> <zoomify url="pano/ImageProperties.xml" setview="true" /> </image> - with setview="true" the default view parameters are changed to fisheye="0" and view.maxpixelzoom="0.95" - new '%g' (=group) parameter for the tiles paths, this allows using zoomify tiles manually - supports PARTIAL and CYLINDER panorama images - new <image> attributes - hfov - horizontal field of view of the pano image (default=360) - vfov - vertical field of view of the pano image ( (default=automatically calculated) - voffset - vertical offset to align a not centered partial pano - note - the preview image can/will be also partial - support for 2x3 or 3x2 cubestrip images - "strip" attribute - ordering from lefttop to rightbottom - Pannini Projection - view.pannini="true|false" - view.stereographic and view.fisheye must be also set to get an effect - new "progressive" loading - for multi-resolution / Zoomify panoramas - one level after the other will be loaded down to the current view - the image becomes sharper and sharped with each level - the loading can be slower because more tiles must be loaded - enable/disable it in the <image> tag with the "progressive" attribute - default="false", only for Zoomify it's "true" by default - "view.maxpixelzoom" - can be used instead of "view.fovmin" - the limitation of the zoom will depend of the image size of the panorama - "maxpixelzoom" set the maximum zoom of the original image that is allowed e.g. maxpixelzoom="1.0" will allow a maximum zooming to an 1:1 view - "view.fovtype" - sets the type of the fov value: - VFOV - vertical field of view (default) - HFOV - horizontal field of view - DFOV - diagonal field of view - MFOV - max. field of view (either vertical or horizontal fov) - "view.limitview" - new limitview modes: "fullrange" and "offrange" - "fullranges" - limits the zooming and moving range to the full image - "offrange" - limits only the moving range to the full image - e.g.

<view limitview="fullrange" maxpixelzoom="1.0" /> <view limitview="offrange" maxpixelzoom="1.0" fovmax="2" />

- xml parsing changes: - all attributes that begin or end with "url" are now automatically parsed as urls, - if the url was relative, it was made relative to the xml in which it was declared - new internal caching - all elements will be automatically cached - e.g. when one image is used several times it will be downloaded only once - variables: - network.caching = true|false - network.cachesize = 7 (MB) - as xml: <network caching="true" cachesize="7" /> - logkey="false" - disables now also the debugging keys (note - these keys are only available in the beta version)

- "prealign" <image> parameter to rotate/align the panoramic image, - usage: <image prealign="X|Y|Z"> - example: <image prealign="0|-90|0"> - auto-detection of preview image type when no "type" was defined - "SPHERE","CYLINDER" or "CUBESTRIP" - a new concept to store more panoramas in one xml file: there can be more <scene> nodes in one xml a scene will be identified by it's name in every <scene> node all krpano sub nodes can be used e.g. <image>, <plugin>, <hotspot>, <events>, ... - a scene is handled like a new external xml file - load a scene via loadscene(): - loadscene(scenename,parameters*,flags*,blend*,onstart*) - scenename - the name of the scene - * all other optional parameters are the same like in the loadpano/loadxml actions - with using the "keep" attribute and the MERGE load flag it is possible to mix global and local parts (e.g. plugins) - a <scene> can have it's own onstart event e.g. <scene name="..." onstart=".."> - new <style> node for parameter sharing - this can be used to reduce the xml code size - the same attributes for plugins or hotspots can be stored at one place (very well suitable for textfield plugins and (polygonal) hotspots)

- note - the parameters can NOT be overwritten in the plugin/hotspots definition! - usage: <style name="style1" alpha="0.5" scale="0.5" ... /> <plugin name="p1" ... style="style1" /> <plugin name="p2" ... style="style1" /> <plugin name="h1" ... style="style1" /> - a style can be also loaded dynamically via - loadstyle(name) e.g. plugin[pname].loadstyle(stylename);

- mouse cursors - user defined mouse cursors - can be set and changed statically or dynamically - plugin "preload" - new "preload" parameter for plugins - force loading before pano, - e.g. can be used for the soundinterface plugin for example to make sure that the soundinterfaces is already loaded before making calls to it example usage: <krpano onstart="playsound(...);"> <plugin url="soundinterface.swf" preload="true" /> ... - parent/child system: - parent attribute for all plugins/hotspots - usage: parent="pluginname" or parent="plugin[pluginname]" or parent="hotspot[hotspotname]" - the alignment of a child refers then to the parent - can be changed dynamically - "scalechildren" attribute - to scale also child plugins on parent scaling, default="false" - plugin/hotspot - "ox" / "oy" - additional x/y offset - % values can be used and they are relative to the own size - plugin/hotspot - "rotate" - rotation in degrees, default="0" - "plugin.enabled" / "hotspot.enabled" - enable/disable all plugins or hotspots globally - plugin/hotspot - "scale9grid" - scaling only a middle area of an image and let the borders unscaled - usage; scale9grid="x|y|width|height" - plugin/hotspot "crop" / "onovercrop" / "ondowncrop" - crop an area of an image - can be used to put several images into one single image - onovercrop and ondowncrop for cropping dynamically other parts on

over/down state changes - usage: crop="x|y|width|height" - plugin/hotspot "mask" - use a other plugin/hotspot to mask out an current plugin/hotspot - if the mask contains an alpha channel it will be used for masking otherwise only the rectangle shape of it - usage: mask="pluginname" or mask="plugin[pluginname]" or mask="hotspot[hotspotname]" - plugin/hotspot "effect" - same "effect" parameter as in textstyle - 3D distorted hotspots - "distorted" parameter for hotspots (true or false) - "rx","ry","rz" parameters for the 3D rotation about the X/Y/Z axis (in degrees) - the size can be controlled via "width","height" and "scale" - "refreshrate" parameter for animated images (swf hotspots) can be 0-60, default is "auto" - this will automatically detect the frame rate for swf movies - for videos it's recommended to use the videoplayer plugin - hotspot "flying" parameter - for "fly-out" images - possible values from 0.0 to 1.0 (for tweening) - 0.0 = normal view - 1.0 = makes the hotspot independent from the panorama rotation and scaling (locked to screen) - <textstyle> - new "fadetime" parameter - set the time for a fadeout in seconds - default="0" - no fadeout - new "fadeintime" parameter - set the time for a fadein in seconds - default="0" - no fadein - <progress> - new "showreloads" parameter (possible values - "true" or "false") - controls if the progress bar should also be shown after the first complete loading, default="false" - e.g. <progress showreloads="false" /> - action parameters - use 'parameter' or "parameter" to mark everything between the quotes as a "together connected string" - this allows the usage of commas (,) and blanks in parameters - e.g. showtext('string, 123') or showtext("string, string"); - user defined actions (<action>) can now be called "direct", e.g. instead of "action(actionname, parameters...);" now also just "actionname(parameters...);" is possible

- tween() action - can now be used also with percents(%) values - use 'get(var)' to tween to the value of a other variable, e.g. tween(varA, get(varB)); - WAIT flag for tween() - waiting until this tween has been finished before the next action command will be executed - usage: tween(variable,destitionvalue,time,tweentype,WAIT); nextaction(); ... - stoptween(var1,var2,var3,...) action - stop one or more tweens - new "tweentypes": (with optional parameters) - easeInElastic(amplitude,period) (defaults: - easeOutElastic(amplitude,period) (defaults: - easeInBack(overshoot) (defaults: - easeOutBack(overshoot) (defaults: usage: tween(var,value,0.5,easeOutElastic); or: tween(var,value,0.5,easeOutElastic(5,2));

automatic) automatic) overshoot=1.70158) overshoot=1.70158)

- copy(dst,src) action - copy variable value - is the same like - set(dst,get(src)); - add/sub/mul/div/mod math operators - usage: with 2 parameters: - add(dst,val1) => - sub(dst,val1) => - mul(dst,val1) => - div(dst,val1) => - mod(dst,val1) => with 3 parameters: - add(dst,val1,val2) - sub(dst,val1,val2) - mul(dst,val1,val2) - div(dst,val1,val2) - mod(dst,val1,val2) dst dst dst dst dst => => => => => = = = = = dst dst dst dst dst dst dst dst dst dst = = = = = + * / % val1 val1 val1 val1 val1 val1 val1 val1 val1 val1 + * / % (like +=) (like -=) (like *=) (like /=) (modulate) val2 val2 val2 val2 val2 (modulate)

- val1/val2 can be values or variables - txtadd(dest, txt1, txt2, txt3, ...) - this actions adds strings together - dest = txt1 + txt2 + txt3 + ...

- inc(var,byvalue*,max*,min*) - dec(var,byvalue*,min*,max*) - increase/decrease values (with saturation) - byvalue - add/sub this value to the var, default=1 - max - max limit, when reaching it, the var will be set to min - min - min limit, when reaching it, the var will be set to max - trace(a,b,c,...); - traces variables or any text - extended switch() action - switch(var, a,b,c,d, ...) - switch "var" through all given values (from left to right) - if/ifnot(condition, trueaction, falseaction) action - condition: - varA - only one variable as parameter - this variable will be compared against "true" - varA OPERATOR varB - compare two variables - the below for all possible operators - trueaction - actions that will be called on true - falseaction - actions that will be called on false - usage examples: if(fullscreen, action(fullscreen_setup), action(windowmode_setup) ); if(view.vlookat GE 45, set(view.vlookat, 45) ); if(plugin[xyz].visible == true, set(plugin[xyz].visible,false) ); - supported if operators: - "==" - equal - "!=" - not equal - "<" - lower than - "<" - greater than - "<=" - lower or equal than - ">=" - greater or equal than - "===" - strict equal (compare only existent variables) - "!==" - strict not equal (compare only existent variables) - because of the XML limitation of the usage of the '<' and '>' characters also these operators are supported: - "GT" - greater than, - "LT" - lower than - "LE" - lower or equal - "GE" - greater or equal - adjusthlookat(desthlookat) - adjusts the hlookat value for manual tweening - it fixes the 360 wrap around for the shortest way to "desthlookat" - usage example: adjusthlookat(140); tween(view.hlookat,140); - screentosphere(x,y,h,v); - spheretoscreen(h,v,x,y);

- actions for converting between screen and spherical coordinates - "fscommand" action for controlling (.exe/.app files from the kprotect usage examples: - fscommand(quit) - fscommand(showmenu,false) the standalone projector tool)

- quits the standalone flashplayer - hides the menubar of the standalone flashplayer - fscommand(exec,application.exe) - starts an external application (NOTE - this application must be in a subfolder named "fscommand")

- new <area> tag - set the size and position of the pano area - in absolute pixels or relative values (%) - attributes with default values: <area x="0" y="0" width="100%" height="100%" /> - when the area attributes will be changed dynamically (e.g. via set or tween) then the "onresize" event will be called, - to get dynamically the current size and position in absolute pixels these variables can be used: (read only) "area.pixelx" "area.pixely" "area.pixelwidth" "area.pixelheight" - plugins will be places inside the area by default - to get them outside of it use - parent="STAGE" - for the plugin e.g. <plugin ... parent="STAGE" .. /> - roundval(var,dp*) action - round the given variable 'var' to 'dp' decimal places - dp is '0' when not given - "random" variable - a global variable - it returns on every get a different random value between 0.0 and 1.0 - an example to get a integer number between 0 and 10: mul(rnd10, random, 10); roundval(rnd10, 0); - "timertick" variable - it returns the current time since start in milliseconds

- "bgcolor" variable - when set to a valid color number (e.g. 0xFFFFFF for white), a background shape with the color will be rendered behind the pano, - when not set or set to an invalid value no background shape will be used, and it behave 'transparent' and shows the flashplayer background color or the html page when using the "transparent" wmode

setting - when set it allows using the mouse 'outside' the pano to navigate when using partial panos - and it allows correct blending between partial panos - CHANGES - the "stop()" action was removed (now used by the videplayer plugin) "stopall()" (which is the same) is still working

- EVENTS: - onxmlcomplete - called when - can(should) - note - when (internally the loading and parsing of an panorama xml is complete be used additionally or instead of "onstart" loading via loadscene() this is also called a scene is like a new pano xml)

- onpreviewcomplete - called when the loading of the preview pano is finished - onloadcomplete - called when the loading of the pano is finished - note for multi-resolution panorams this is only called once when the first view loading is finished - onkeydown / onkeyup - keyboard events - check the current press key via the "keycode" variable - onclick - will be called on a mouse click - onmousedown - mouse button down - get the current mouse position via the "mouse.x" and "mouse.y" variables - onmouseup - mouse button up - onmousewheel - mouse wheel change - get the current change from the "wheeldelta" variable - onloaderror / "lasterror" - user defined error handling - no error message will be shown - the last error message in stored in the "lasterror" variable - onviewchange - is called on every view change - note - this event should be used carefully, don't make "heavy" operations/changes here - this events will be called every frame on moving - onidle / "idletime"

- will be called after some time of no user interaction/moving - the "idletime" can be set in the <krpano> node or via set(idletime, 0.5); - default "idletime" is "0.5" seconds - onresize / "stagewidth" / "stageheight" - will be called on resize of the window - note - also will be also called on fullscreen/window switches - the "stagewidth", "stageheight" variables are set to the current window/stage size - INTERFACES: - use the "image.layer" variable to the get AS3 Sprite object of the pano image layer (for adding filters or postprocess effects...) e.g.: (as3 code) var panoimage:Sprite = krpano.get("image.layer"); - file loading interface for krpano swf plugins: - loadfile(url:String,donefunction:Function,errorfunction:Function=null,cac heit:Boolean=true); - donefunfcion(ld:Object) - ld.data:ByteArray - loadobject(url:String,donefunction:Function,errorfunction:Function=null,c acheit:Boolean=true); - donefunfcion(ld:Object) - ld.loader:Loader - OTHERS CHANGES: automatic download retry on server busy errors changed default network settings - downloadqueues/decodequeues default Flash background color changed to black (#000000) optimized krpano.swf loading <krpano> - showerrors="false" to disable opening the log on errors new IGNOREKEEP loadpano() flag to ignore "keep" attributes

PLUGINS: all plugins: - use a new updated version management - check the version of each plugin by opening it the swf with the standalone Flashplayer or opening it direct in the web browser editor plugin: - xml generator only partially updated for the new attributes - but not all at the moment!!! - bugfix - "blackout" on HIGHSHARP quality - bugfix - lensflares <flare> duplicates - image and polygon hotspots can be moved now - 3D distorted image hotspots can be moved/rotated/scaled - bufix - architectural projection is now disabled while drawing hotspots - xml generator partially updated for the new attributes

soundinterface: - added functions for 3D directional sound - bugfix - added check for the possibility to play sound (installed soundcard) - bugfix - correct error message when a file could be found - bugfix - sound directions

googlemaps plugin: - debug traces removed - onhover was also done on visible="false" - resetspots() (main bugfix done in viewer) - new control for the map type: <maptypecontrol visible="true" anchor="rightbottom" x="2" y="2" buttonalign=" v" /> - "maptypes" parameter set possible map types example: maptypes="NORMAL|SATELLITE|PHYSICAL|HYBRID" - "onmaptypechanged" event will be called when the map type changes videoplayer plugin: (new) - attributes: * videourl - url of the video can be any FLV Flash video (.flv) or any H.264 coded video (.mp4, .m4v, .mov, .3gp) (for H.264 coded videos Flash Player 9.0.115 or higher is needed) - NOTE - the video url must be always relative to the main krpano swf file!!! this is a flashplayer bug and there unfortuneatly no way to fix it, read here: http://bugs.adobe.com/jira/browse/FP-1194 * pausedonstart (true or false) - video is paused on start - default=false * loop (true or false) - loop video or stop at end * volume (0 .. 1) - sound volume - default=1.0 * directionalsound (true or false) - use directional sound when the video is played as hotspots - default=true * range (1-360) - range of the directional sound - default=90 * buffertime - time in seconds that should be buffered before starting playing - default=0.1 * updateeveryframe (true or false) - default=true - for performance optimiations - only the video is used as distored hotspot - when set to false it refreshes the video only when flash reports there is a new frame

- this reduces the cpu load but: - in situations where the flashplayer has much work to do, this can cause frame skipping (e.g. while moving in the pano) - use with care! - read only attributes/states * ispaused (true or false) - check the state of the video - events: * onvideocomplete - will be called when the video is played completly - only when "loop" is set to "false" - interface actions/functions: * playvideo(url) - starts and new video * closevideo() - stops and cloes the video stream * stop() - stops the video and moves to the first frame and pauses there - the video can be resumed via play() or resume() * pause() - pauses the video at the current frame - the video can be resumed via play() or resume() * play() / resume() - resumes a paused video * togglepause() - pauses or resumes a video XML example: <hotspot name="video" url="videoplayer.swf" videourl="video.flv" ath="12" atv="10" scale="0.5" rx="0" ry="0" rz="0" distorted="true" pausedonstart="false" loop="true" volume="0.7" directionalsound="true" range="120" onclick="togglepause();" /> some action calling examples: <action name="playothervideo"> hotspot[video].playvideo(othervideo.flv); </action> <action name="stopbutton"> hotspot[video].stop(); </action> <action name="playbutton"> hotspot[video].play();

</action> <action name="pausebutton"> hotspot[video].togglepause(); </action> textfield: - "wordwarp" attribute (default="true") combobox: - debug traces removed - label now have correct case again TOOLS kprotect: - allow embedding of any additional file - automatic analyzing and resolving of xml files - show xml parsers errors - updated standalone players - bugfix - domain limiting in "Embedded XML" mode kmaketiles: - added the "-keepaspect" parameter for resizing, with "-resize=WIDTHxHEIGHT -keepaspect" a image will be resized to the maximum image size of WIDTHxHEIGHT and the original aspect will be kept kmakemultires: - bugfix - "indexbase" - bugfix - building of a too large previews on partial panos - bugfix - "xmltemplate_additional_file" parsing fixed - bugfix - wrong jpeg imagesize - new - "tilename" adjustable - support of tiles inputs - new parameters for this case: - intilesize - size of the input tiles (format: SIZE or WIDTHxHEIGHT) - insize - size of the input image (format: WIDTHxHEIGHT) - inindexbase - indexbase for input (default=1) usage: (similar to kmaketiles) kmakemultires tiledimage_%v_%u.jpg -intilesize=1000 -insize=10000x5000 -inin dexbase=1 - support for automatic creating of partial panos - panotype (new parameter) - type of the input pano - possible values: - autodetect - the type will be detected by it's imagesize/aspect - 2:1 aspect for a spherical pano - 1:1 aspect and six similar named images for a cubical pano - other aspects - ask the user - sphere - force assuming that the input is a sphere - cylinder - force assuming that the input is a cylinder - flat - force assuming that the input is a flat image

- hfov (new parameter) - hfov value for partial spherical/cylinder panos (the vfov value will be calculated automatically) - updated "kmakemultires.config" - new xml templates: - simple.xml - only the pano with no additional elements - standard_skin.xml - some standard panoramic controls - a changeable custom mouse cursor (moving, dragging) - qtvr - qtvr_style_skin.xml - a qtvr styled skin - zoom buttons, qtvr cursor kcube2sphere: - bugfix - wrong jpeg imagesize - bugfix - "-size" parameter was ignored

=============================================================================

You might also like