• Hi all,

    it took a long time, much longer than expected, but therefore there are also much more features included than originally planed (e.g. HTML5 xml encryption, HTML5 distorted hotspots, HTML5 videoplayer, ...) and finally it is ready and here - krpano

    Below a detailed list about all news and changes compared to version (sorry, it's a long list )

    Best regards,

    New Features

    • New Plugin Interface for Flash and HTML5
      • There is completely new plugin interface for krpano plugins (old plugins will still work of course).
      • 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.
      • There are new interface functions for accessing the krpano internal data structures (Arrays, Objects, Setter/Getters ...).
      • No need for a "krpano_as3_interface.as" and no global single krpano instance anymore.
      • Documentation and Examples:
    • Improved HTML5 Support
    • Improved Multi-Device Support
      • The devices attribute can now be used on xml tags.
      • More devices checks.
      • 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
      • There is a new encryption system available which works for the krpano Flash AND for the krpano HTML5 viewer.
      • It's possible to encrypt xml files and additionally also Javascript plugin files.
      • 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.
      • 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)
      • Panoramic videos can now be loaded and controlled by videoplayer plugin and shown by the viewer.
      • 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)
      • 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.
      • 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.
      • 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
      • 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.
      • Example syntax: (the "%s" will be replaced by "l,f,r,b,u,d")
            <cube url="pano_%s.jpg" />
    • New Actions, Parameters, new Events and new Variables
      • 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.
      • New actions for looping / repeating actions:
        • for(startaction, condition, nextaction, loopaction)
        • asyncfor(startaction, condition, nextaction, loopaction)
        • loop(condition, loopaction)
        • asyncloop(condition, loopaction)
      • New Math object for mathematical constants and actions.
      • The InOut and OutIn tween types (except easeInOutQuad) were externalized to the moretweentypes plugin.
      • 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 Javascript/Flash substr() function)
      • 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
      • When looktohotspot() will be called without parameters from a hotspot event then automatically 'lookto' to current hotspot.
      • The tween motion types are now also available for the lookto() actions.
        Syntax: "tween(tweentype,time)"
      • New tween update callback function:
        • tween(var,dst,time,done,updatefu)
        • the updatefu code will be called after every variable change
      • The tween actions are now using the actionintervalbase setting (that means they are more time accurate by default).
      • 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.
      • 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.
      • New control.touchtype variable for touch devices (iPhone/iPad/Android). Possible values = "drag2d" or "moveto", default="drag2d".
      • The invalidatescreen() action will now reset the idletime counter.
      • Architectural projection - smoother architectural to normal transition at nadir/zenith.
      • New control.camrollreset variable (true or false, default=true) to disable the resetting of the camroll in moveto / drag2d control mode.
      • The HIGHSHARP post-processing sharpening strengh is now adjustable via the display.sharpen variable (values from 0-14, default=12).
      • The default value for the actionintervalbase is now "timer" (like in HTML5 where no real frame-rate exists).
      • 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)
      • 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!
      • New maskchildren setting for plugin and hotspots element - when set to true then all child elements that are outside of the parent element will be clipped/masked out.
      • 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 avialable.
        • onremovepano - this event will be called when when the current pano will be removed (e.g. before loading a new pano).
      • 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.

    Changes / Fixes - HTML5 (krpanoJS / krpanoiphone.js)

    • Support for Distorted Hotspots
      Notes / Limitations:
      • The "zorder" should be between 0 and 100.
      • The distorted hotspots are always 'behind' the normal hotspots, mixing the order of distorted and normal hotspots is not possible.
      • There might be problems on some iOS 3.* (iPod) devices. There the 3D CSS 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:
      • remove the too big margin on <p> elements
      • avoid automatic scaling when using 0.*em font sizes
      • correct "roundedge" scaling on iPhone/iPad
      • improved autosize calculation
      • more accurate font size scaling
      • internal escaping/unescaping bugfix
    • 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: 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.

    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 version and caused a Javascript error when trying to use it during embedding the krpanoJS viewer.


    • Options Plugin
      • new settings to change partial panos (projection, hfov, vfov, voffset, ...) interactively
      • more clearly layout
      • controllable (open/close views) by xml
    • Editor Plugin
      • small improvements
      • hide some xml tags when they same still the default settings
      • updated xml code generation
    • Google Maps Plugin
      • complete internal redesign (but downward compatible)
      • now almost every attribute/setting of the plugin can be changed dynamically
      • new external license file to allow easier and quicker updating just by replacing the googlemaps.swf with the latest one
      • support of custom spot images and styles
      • new additional controls
      • new '3D' view mode
    • Videoplayer Plugin
      • HTML5 support
      • Fix: "pausedonstart" and other loading issues - they were related to different Flashplayer version behaviors and different video format behaviors.
      • Fix: The size of the video was wrong for some video formats.
      • Fix: The "videourl" attribute will be now updated to the current video url after a playvideo(url) call.
      • Fix: The "time" attribute was not updated.
    • SoundInterface Plugin
      • HTML5 support
      • Fix: soundinterface.js - unescape paths (bug only in beta/rc versions).
      • Fix: sounds with the same filename but different folders are working now.
    • Combobox Plugin
      • HTML5 support
      • Fix: combobox.js - missing additem() updates for native comboboxes (bug only in beta/rc versions).
    • Gyro Plugin (HTML5 only)
      • the Gyro plugin from Aldo Hoeben is now a real krpanoJS plugin and included in the download packages
    • Radar Plugin
      • HTML5 support
    • MoreTweenTypes Plugin
      • To save .swf/.js file space some tween types (the most InOut and OutIn) the were externalized to the "moretweentypes" plugin.
      • Just include the plugin once to have all tween types back.


    • All 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)
      • HTML5 compatible xml encryption.
      • Option to backup encrypted files.
      • Parsing/resolving of <cube> images with %s placeholder.
      • Don't embed <tablet> and <mobile> images by default.
    • krpano Update Tool (new tool)
      • For updating krpano swf and js files.
      • Just the viewer code will be updated, any embedded data will be left unchanged.
    • kmakemultires Tool (the tool behind the MAKE PANO / MAKE VTOUR droplets)
      • 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.
      • Allow specifying the config file also via a -config=### syntax.
      • Enable multires/tiled paths automatically for non-cube images when the maxsize setting from the config file is not large enough.
      • Generate thumbnails for all kind of pano types.
      • Automatically add device="flash" to scenes that are not html5 compatible.
      • Customizable temporary cube image format (e.g. converttocubeformat=kro).
    • kprotectcl Tool
      • Allow building standalone windows exe files (when providing a Flashplayer projector exe file).
    • Updated Templates
      • MAKE OBJECT skin (objectskin.xml) with automatic adding and removing the object controls when loading new panos.
      • Small xml optimizing and fixes.
      • Fix: Add a stop check for the 'delayedcall' hotspot animation.
    • kencrypt Tool
      • Fix: Memleak.
      • Fix: Show error message when writing a file failed.
    • Convert SPHERE to CUBE and Convert CUBE to SPHERE Droplets
      • More settings by using new config file (convertdroplets.config).
  • Hi,

    But, transparent mask supported with maskchildren in HTML5?

    maskchildren is technically just a HTML overflow clipping,
    if you mean the mask="..." with another image as mask - there is currently nothing in the HTML5 specs that would allow masking HTML DOM elements with images, so there is currently no way to do that in HTML5 like in Flash...

    best regards,

  • Hi Klaus,

    Thanks for the new version, I see really great things in that! *thumbup*

    Just 2 questions:

    1) When I try to download the linux versions of the tools, it gives me the prior version ( instead of the new one... (the links pointing to the new, version, but the downloaded file is the

    2) Is there any changes in this version (compare to the rc3) in the js viewer plugin.rotate issue, which I mentioned in this thread: plugin.rotate uses a different center point in the js viewer

    (Or maybe am I doing something wrong in these?)

    Thanks in advance...

  • Hi,

    1) When I try to download the linux versions of the tools, it gives me the prior version ( instead of the new one... (the links pointing to the new, version, but the downloaded file is the

    right, sorry, the Linux versions should come soon,

    2) Is there any changes in this version (compare to the rc3) in the js viewer plugin.rotate issue, which I mentioned in this thread: plugin.rotate uses a different center point in the js viewer

    yes, there are a lot of changes compared to rc3, in the current version that should work,

    best regards,

  • cool cool cool !

    But maybe a simple question.

    I took a recent project to test Encryption tool.

    When I use the Encryption Tool
    I select use HTML5/Javascript compatible (because it's a project for PC/iPad/iPhone)
    And I deselect Backup original files.

    But after the encryption the html is encrypted as well, so I can't 'read' nothing.
    and it does make backups.

    I suppose that's my lack of experience.

    Any little tip about encryption for html 5 ?


  • Hi,

    well I just selected the whole folder of the project *smile*

    you have encrypted all files?
    if yes, then all files that are not xml files are bad now...

    So now I just selected all the xml files.

    - now my window is just black..
    - and it does create backups even when I unchecked that function.

    are viewers itself are updated, or?
    about the backups - I have checked that now again - right, the backups were done always, this will be fixed soon,

    best regards,

  • Hello Klaus bravo again for this impressive release,

    i just tested this night with the make vrtour multires droplet a simple vtour with the license at the good place and i have this error on ipad iphone, :

    iphone/ipad not available,

    sorry to ask so simple question but i am not a user of this droplet, i usely use panotour so if i well understood the the swf object is now integrate to the .js, and the license too i think, so thank you to help me.

    Best regards

  • Hi,

    i just tested this night with the make vrtour multires droplet a simple vtour with the license at the good place and i have this error on ipad iphone, :

    iphone/ipad not available,

    have you copied all licenses (including the krpanoiphone.license.js) into the tools folder before using the droplet?
    and is the pano a 360x180 (or at least a 360x120) pano?

    best regards,

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!