If you have questions about FPP, you should ask those in the FPP forums.
To purchase FPP or any of the related products, visit the online shop.
Flashificator (FFC), is the Graphical User Interface (GUI) for FPP. More information about FFC.
Pano Cocoon (The Security Suite for FPP), offers top notch security. Encryption of the panorama images, encryption of the project xml file, Domain Lock, Local Lock, Time Limit and a cutsom hard coded context menu that can not be removed from the project, ensuring that your copyright information can not be removed from a project you have made More information about Pano Cocoon.
To see the latest news about FPP’s ongoing development, you should visit THIS LINK.
Examples of panoramas made with FPP and FPP+FFC can be seen HERE and HERE
The FPP Blog has not been active in the past, but from now on new posts will be published from time to time.
Discussions and questions are as always, best dealt with in the FPP forums, and not here in the blog.
Respectfully,
Trausti Hraunfjord
]]>Why Flash 10 is good for panoramas?
So, at first, Flash 10 has UVT-mapping support. This means that old problem of all Flash panoramas (”waving” effect or “segmentation” effect) can be forgotten now. In addition Flash 10 has advanced antialiasing engine with hardware support. I.e. Flash 10 renderer should be faster with antialiased image (quality=”medium”) than Flash 9 renderer with non-smoothed image (quality=”low”). Both these features ensure the absence of image quality degradation in Flash 10 panoramas. Now we can talk that Flash panoramas is the same as good or even better than QuickTime panoramas.
This is a “silent” update
You do not need to update plugins and XML files with parameters. You do not need to ask your site’s visitors to update Flash player immediately. It works gently: if the user has only Flash 9, the panorama player will use old good Flash 9 renderer (no changes), if the one has Flash 10, the player will enable new Flash 10 renderer (quality up).
Additional notes
The advanced hardware support in Flash 10 promises the increased performance (speed smoothness for panorama motion), but it’s totally true if the user has a modern and powerful graphic card. It can be even a bit slower for old and weak hardware. It requires more tests here…
Flash 10 has the keyboard support in fullscreen mode, but only arrows are working for me, zoom (shift/ctrl) is not working, maybe we should use another keys for zoom in fullscreen mode.
How to update
As usual, the update is free for all customers. This time you can download the update manually from Flashpanoramas Group (http://groups.google.com/group/flashpanoramas/). This is a private group, if you bought the player, but you never got the invitation to the group, contact me at flashpanoramas@gmail.com, we will fix it. Only one file to update (pano.swf), replace the old file with new pano.swf (or rename it if you has used a custom name like myPano.swf). That’s all, as I told already, the player has the full back compatibility and it works fine for Flash 9 and Flash 10. Current version of the player is “2.3″.
New features
No new features except including native Flash 10 features and hardware support. All new features will be included to the next big update or some of them will be released with minor version releases.
Actually I added 2 new parameters “qualityStatic2″ and “qualityMotion2″. Use them to set the quality of the panorama image for Flash 10 users (this is useful if you want to set different setting for Flash 9 and Flash 10 users). By default these parameters are equal to “medium”. And another small thing: you can set now zoom_min=0.04 (equivalent to about 177В° FOV), for extreme panorama geeks only.
Apologies
Sorry for the long period without updates. I’m not the good blog keeper… Some time ago I planned the new grandiose update for the player (v2.4 as I can see it now). And there is no rest for me since that time. I wrote the player with totally new architecture. But believe me, it’s a lot harder than Flash 10 support… But when I’ll finish it, it will be a really beautiful and useful product (several major feature was never be implemented in other panorama systems). ![]()
Incidentally, I can say, I don’t know how it works, but the panorama community collects only all the best people from the whole world. I found a lot of new friends. Some of them are famous, some of them are really genius. I have no chance to meet them without my small player’s work. I participated in several interesting projects based on FPP this year. It was great. And every day I’m answering 30-40 incoming e-mails. It takes a lot of time, but I believe that this my “invisible” work benefits to the panorama community too.
By the way
If you are tired of writing XML for Flash Panorama Player manually, check Flashificator (http://flashificator.com/). This is a GUI (graphic user interface) for FPP. This was created by my friend Trausti. And note, he’s updating it’s product often then me.
So, check this small update and tell me what you think. I’m still going to write some lines of code today and answer the accumulated correspondence.
See you,
Denis.
tooltips.swf, tooltips.fla (source).
smartscale.swf, smartscale.fla (source).
ToolTips plugin is very simple: add alt tag to all hotspots you want to see the tooltips:
<spot id="left" alt="move left" static="1" align="BC" salign="BC" staticX="-225.5" staticY="-5" url="images/black_l.png" />
<spot id="right" alt="move right" static="1" align="BC" salign="BC" staticX="-150.5" staticY="-5" url="images/black_r.png" />
ToolTips plugin searches and shows alt tags using nice yellow box. That’s all, nice and easy.
So alt tag is a part of Hotspots code, you can change it dynamically, I’m using in example above:
onEnterFullscreen="full.alt=exit fullscreen" onExitFullscreen="full.alt=enter ullscreen"
This code is changing the tip for fullscreen button depends on the stage state.
SmartScale works with hotspots too. It searches tags with smartStale=”1″ attribute and changes the scale and positions of navigation buttons depends on the screen width (good for flexible windows). This functionality cannot be done using Hotspots script so it doesn’t support conditions. But some Actionscript in the plugin did the trick.
Linear scaling looks a little inaccurate (too big buttons if your screen is really wide), so I added an additional scale mode in SmartScale plugin: it reduces the size of buttons only if the width is less than 800. It prevents missing buttons if your screen is small, but it do not scale the buttons more than 100%. Check the second example.
This second scale mode is switching on by additional parameter in XML:
<smartscale>
mode=reduce
</smartscale>
Both examples are good if you want to create your own plugin to work with Flash Panorama Player hotspots.
]]>
mp3player.swf, mp3player.fla (source).
<mp3player>
file=files/mySong.mp3
volume=1
repeat=1000
</mp3player>
(file defines the path to mp3 file, volume sets the initial volume level, repeat sets the number of repetitions)
You can use online radio stream instead of static mp3 file (I used TRACE.FM radio in example above):
<mp3player>
file=http://8331.str.ovh.net:8331/tracemq.mp3
</mp3player>
You can find more radios here, for example: http://dir.xiph.org/. Note, not all radios is OK for Flash, it supports only mp3 streams (doesn’t support ogg vorbis streams), and some shoutcast servers ignores Flash movies because of unexpected http header (it can be fixed by shoutcast server’s configuration changing).
Internet radio has one advantage: you will listen new music every time you take a look on the panorama.
As I told already, you can use any Flash mp3 player to run together with Flash Panorama Player. This specific solution is better only if you need to control the music concurrently with panorama images. You can send new info to the player the same as for other plugins: use
If you are good enough in Actionscript programming you can use this source as a base to create more powerful mp3 player (with track selection, with id3 tags support and so on).
mp3hotspot.swf, mp3hotspot.fla (source).
There is a variation of mp3player plugin. It has no interface, but you can load it to any hotspot. You can create a panorama with several sounds on the scene and you can use sound panning with it, for example:
<spot id="frog" url="files22/mp3hotspot.swf" file="images/frog.mp3" repeat="1000" pan="0" tilt="-70" enableSoundPannig="1" soundRadius="100" />
Note: you can send parameters using spot attributes. Another way is to place them to query string: url=”files22/mp3Hotspot.swf?file=images/frog.mp3&repeat=1000&volume=0.5″. The first way is preferred so it works both online and offline.
This is another example. I placed several sounds around the scene and the sound is changing against the panorama position. A little fun.
Mp3 hotspot handles loading/unloading of hotspots correctly; you can use it together with linked/unlinked properties without a problem.
One more notice about the difference between mp3hotspot and mp3player. Mp3hotspot is a special type of FPP’s plugins, I’m calling it “smart hotspot”, it works only inside Hotspots plugins as a hotspot (flvPlayer.swf and lensFlare.swf are smart hotspots as will). It has one advantage with sound panning support. Mp3Player in constrain to mp3hotspot is a full-blown FPP’s plugin, it can work without loaded Hotspots, it can handle its own XML blocks. Use mp3player or mp3hotspot plugin subject to your idea.
]]>
lensFlare.swf, lensFlare.fla (source).
Paste this code to your Hotspots plugin XML:
<spot id="lens" url="files/lensFlare.swf" pan="-44" tilt="45" align="LT" buttonMode="0" blendmode="lighten" scaleable="0" radiance="0.3" />
(blendMode=”lighten” makes it more natural in my opinion, you can remove it; radiance=”0.3″ defines the power of “blinding effect” when the flare is on the screen, use values from 0 till 2).
Use Editor plugin to superpose the lens flare spot to the source of light (sun, for example) on the panorama image.
If you have Adobe Flash CS3, you are able to create your own lens flare plugins. Open the source of the plugin and edit the graphic elements. I made a simple flare effect with rounded barely visible glares. You can add any shaped glares in any color. Good glare effect can animate the scene a lot.
But be careful with number of glares, too many glares with various alpha and blur effects require additional processor time and can slow down your panorama.
If you have Actionscript 3 knowledge, you are able to change everything in the source. This source is a good template as well if you want to create some plugin with interactive elements on the panorama image.
I remind that there are no differences between various types of panorama images (QTVR files, cube faces, spherical or cylindrical images) inside the player. You can use any player extension with any panorama type. This is another example (cylindrical QTVR file with lens flare effect).
There is no restrictions for open source plugins. You can change, rewrite, distribute and use them as you wish. You can write your own plugins based on open source code and you can sell your work and your plugins to other Flash Panorama Player’s customers (if you can implement something worthwhile of course
).
I think the community of Flash Panorama Player now is big and smart enough and I’m not going to implement all possible features myself always. You can do some too. Meanwhile I’m going to focus on API documentation and the engine improvements.
If you are customer of Flash Panorama Player but you are still not on this forum (http://flashpanoramas.com/forum/), please, register. You can find there some people who know about the player more than me! It’s true, I saw some questions on the forum and I have no idea how to answer them, but some other users answer them without a problem. I got some new info about my player usage at that time. It’s amazing!
Thanks for all, guys.
Sincerely,
Denis.

Main changes for new version of the player::
QTVR files in mov format can be loaded inside Flash Panorama Player at runtime (including multi-tiles panoramas and cylindrical QTVR panoramas). You do not need to have installed QuickTime player to see QTVR files with Flash Panorama Player, only Flash Player.
QTVR movie example (loads this QTVR file).
Cylinder QTVR example (loads this movie).
I can’t guarantee now all possible QTVR files support, but it should work with all contemporary QTVR creators (tested with RealvizStitcher Unlimited, PTGui, pano2qtvr, PanoCube, Panorama Factory, 3D Studio Max and some others). No QTVR hotspots, QTVR objects or advanced settings supported now, use FPP’s hotspots and advanced settings if you need. I will continue to improve QTVR decoder in future.
From now I should recommend cube QTVR format as a preferred format for Flash Panorama Player: it takes no superfluous memory, it takes almost no time for decoding, it loads smoother than separate cube faces (use tiles), it can contain build-in low quality preview. Moreover it is widely available format, there are a lot of free and cheap tools with QTVR output.

Flash Panorama Player supports now spherical and cylindrical panorama formats as well. I tried to find the optimal combination between the panorama quality and speed of transformation (all spheres and cylinders are transformed to cube faces just after the loading), small spherical panoramas (less than 2000) do it fast enough, but there is can be a noticeable pause for big panorama transformation (5-7 seconds for 9000×4500 panorama). Spherical image example (loads this image).
Actually, any single image can be a panorama now: set rough hfov and vfov settings for your image and load it as a sphere segment: Comet Between Fireworks and Lightning. This is well-known photo by Antti Kemppainen. I like it very much. I drew the bold red border around it to demonstrate how precisely the new Limits plugin works. It shows all possible pixels for any angle of view but it hides all pixels outside the image borders. Also notice that Autorotation plugin can understand the borders of the viewing area in this example.

All panorama images can be loaded now as a stream: cube faces example. Also there is an additional parameter loaderBandwidth to restrict the maximal loading speed. It is useful to test your panorama offline (say, if you want to check your panorama for low speed connection). But you can use it as well to make loader process more smooth or as a “eye candy” effect. I recommend to disable this options for big cylindrical and spherical panoramas (takes too many processor’s time).

Finally the panorama player can load images in swf format. Not as for vector images (they will be transformed to bitmaps just after the loading), not as for animation (you can put an swf animation to the panorama using distorted hotspots), but to have a possibility to load fast panoramas (say, as a first screen in your virtual tour, as a simple background for your panorama-based site menu, or as a part of some online game). For example, this “panorama” is less than 1 kb. Should be useful for someone. Let it be.

New effects for hotspots: glow, shadow, bevel, tint and sharpness (including various subservient parameters like shadowDistance, shadowAngle, shadowStrength, blurQuality, glowColor and so on). Check the old example with updated Editor plugin, for example, try to apply a tint effect to the pano object or play with glow settings of hotspots.
Other changes:
Plans for October:
Watch for updates,
Denis.

Download: SWFParser.air (Adobe AIR is required to run this software).
Working on GUI for Flash Panorama Player I noticed there is no appropriate library for SWF authoring. I tried free libraries like sswf and swf tools, also I checked commercial ActiveX products for SWF authoring/transformation like SWF Generator and SWF Scout. They are not bad for simple manipulations on old versions of SWF files, but all of them have big problems with 9th version of Flash format, also practically they are not working with SWF library items (only with scene objects). What a pity…
Now there is a question: why not using Actionscript for SWF manipulations? I can’t find any info about this except some unanswered questions on different Flash forums. This strange because Actionscript 3 has all capabilities to work with SWF: ByteArray, zlib library, png/jpg decoders and loadBytes() function to convert the result into DisplayObject and test it on the fly. This gives a possibility to create online tools for SWF transformation. For example: there is a big problem to load and control Actionscript 1-2 files inside Actionscript 3 application (no direct communications between AVM1 and AVM2). SWF library would allow disjointing SWF resources (images, vector shapes, movieclips and so on) and control them separately. Another way: just insert some communication object like SWF Adapter to AS2 application on the fly (one additional SWF tag) and convert it into AVM1 movie.
Together with new Adobe AIR technology this will provide a powerful platform for offline SWF authoring (multiplatform: single application for Windows and Mac, and for Linux a little later).
So, SWF parser is a test of technology. Features:
This is an example how to parse SWF file (I believe this will be useful if you want to continue this idea).
Place it to the first frame in Flash CS3 or insert it to your AS3 class.
/*
Simple SWF parser
Written by Denis V. Chumakov
http://flashpanoramas.com/blog/
Use this code without any restrictions.
*/
// log string
var parseLog:String;
// handlers for SWF tags
// for example:
// handlers[6] = parseJPEG;
// to set your handler for DefineBitsJPEG tag.
// you can find SWF file specifications in Google.
var handlers:Array = [];
// parse SWF file
function parseSWF(data:ByteArray) {
parseLog = "";
data.endian = Endian.LITTLE_ENDIAN;
var format:String = data.readUTFBytes(3);
var compressed:Boolean = format=="CWS";
if (format=="FWS" || format=="CWS") {
parseLog += "SWF version "+data.readByte();
parseLog += ", size: "+data.readUnsignedInt();
} else {
parseLog += "Not a Flash file.";
return;
}
data.readBytes(data);
data.length -= 8;
if (compressed) {
data.uncompress();
}
data.position = 0;
var frame:Array = readBox(data);
parseLog += "\n";
parseLog += "Width: "+Math.round((frame[1]-frame[0])/20);
parseLog += ", height: "+Math.round((frame[3]-frame[2])/20);
var fps_f:uint = data.readUnsignedByte();
var fps_i:uint = data.readUnsignedByte();
parseLog += "\n";
parseLog += "FPS: "+(fps_i+fps_f/256);
var count:uint = data.readUnsignedShort();
parseLog += "\n";
parseLog += "Total frames: "+count;
parseLog += "\n";
while (data.bytesAvailable) {
readSWFTag(data);
}
trace(parseLog);
}
// read SWF tag and call handler if present
function readSWFTag(data:ByteArray) {
var tag:uint = data.readUnsignedShort();
var id:int = tag>>6;
var size:int = tag&0x3F;
if (size == 0x3F) {
size = data.readUnsignedInt();
}
parseLog += "\n";
parseLog += "Tag "+id;
if (handlers[id]!=null) {
var dump:ByteArray = new ByteArray();
if (size!=0) {
data.readBytes(dump,0,size);
}
handlers[id](tag, id, size, dump);
} else {
data.position += size;
}
parseLog += "\tsize: "+size;
}
// read compressed box format
function readBox(data:ByteArray):Array {
var c:Array = [];
var current:uint = data.readUnsignedByte();
var size:uint = current>>3;
var off:int = 3;
for (var i:int=0; i<4; i+=1) {
c[i] = current<<(32-off)>>(32-size);
off -= size;
while (off<0) {
current = data.readUnsignedByte();
c[i] |= off<-8?current<<(-off-8):current>>(-off-8);
off += 8;
}
}
return c;
}
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, loadComplete);
// load complete handler
function loadComplete(event:Event) {
parseSWF(loader.data);
}
loader.load(new URLRequest("myfile.swf"));
]]>
Actually Editor plugin is a part of future GUI for Flash Panorama Player. But it is useful as well for FPP customers as a simplest way to set up hotspots over the panorama image.
If you are still not a customer, this example provides you a possibility to play with Flash Panorama Player objects and parameters, to watch them in action.
Currently Editor plugin can’t change scripts used in panorama application (i.e. you can’t change the behaviour of photos in the example). But you can estimate control points for item motion and use this data in manually created scripts.
Short tips for Editor plugin:
Editor plugin is a part of Flash Panorama Player v2.1.
]]>New version of Flash Panorama Player is ready. This is a demonstration of new possibilities.
Draw attention to the display. It shows an external video file (flv format). The sound of the video file has 3D effect. Click on it to pause/play the video.
Now look at the wall clock. It shows the correct time and it ticks. This is a simple Flash application. Source file for Flash CS3 will be available as an example.
Finally check the photos on the table. This is an example of distorted hotspots realtime manipulation. Click them in any order, in static position or in motion, they will always open and close correctly. No Actionscript are required to describe their behaviour, only Hotspots plugin’s XML descriptions. It’s very simple so you do not have to bother about 3D coordinates and 3D motion paths, just point the final position and time for transition effect.
There will be a WYSIWYG tool for precise positioning of distorted objects (useful to superpose, say, external video and monitor on the panorama image).
Some more fun with video: if you have a web camera, click here to change the video source to your camera output.
Yes, any external swf application can be placed as a distorted image inside a panorama.
Yes, there is a full support of alpha channel, including flv video with alpha channel. You will be able to place a translucent hologram to the panorama like in Star Wars.
No, I do not think it is possible now to replace all static photos in a panorama with videos. It will be too slow for Flash. But several small animations, videos and some sort of 3D interaction should enliven any panorama a lot.
The new version is available for purchasing here (€39.95). Old customers got the free update by e-mail.
Cheers, Denis.
]]>Flash Panorama Player package contains now set of examples, you can use them as templates for your own panorama applications. Current version includes: