Beiträge von JPG_master

    .... continued ...

    I also - but late - recognized, that the photgraphic tiles are differen between the examples executed from webpage or from the mac:
    same place in italy; same location, but different Saetellite photos
    => different source (??!!!)

    Different type of KEY used (bing only offers type Basic to me)??

    Google Maps API key used => does not affect the result.

    I HAVE NO MORE Idea.

    Klaus ...??
    Anybody ...??

    All,

    I have the MAPS licence, I have the Bing Maps Key and und the EXAMPLES Path I can use both plugin examples - after adding MY key.

    I SEE the Map (Satellite), the spot and the Radar.

    I DO NOT see the Controls for Zoom, or any of the hints (Usage etc) you see when using Klaus example on the webpage under "Commercial plugins" Google Maps adapter and using the "A Small Map" link:
    https://krpano.com/examples/118/e…googlemaps.html

    I downloaded the HTML and the XML of Klaus' example ... still I do see as described above but the other stuff (controls) does not appear.

    I have a Mac, El Capitan OS X 10.11.4, krpano 1.18.6 and use the Safari.
    Java is uptodate, Flash also ... klaus example works.

    Any Ideas by anybody?

    Questions and requests for more Information are welcommed.


    HELP !!!! *cry* *wacko* *question*

    Cheers

    Nautama,

    whe I understand this correct:

    When I create de viewer is where I'd like to modify the "mousetype" variable, but since it doesn't live inside the krpano element I have my doubts:

    you would like to dynamically - means from HTML - want to modify more values than given in your "embed" example.

    I only see a chance with the <krpano onstart= ...> action.

    I use the following

    Code
    if( GetStartParam('teasermode')) viewer.addVariable("_br360.teasermode", GetStartParam('teasermode'));
    viewer.addVariable("_br360.teaser_alt-pano", "file:///......./MASTER.html");

    and inside XML:

    Code
    <action name="XYZ"> 
    if ( _br360.teasermode == ON, 
    ...
    
    
    txtadd(onclickstring, 'openurl(', get( _br360.teaser_alt-pano ) ,', _blank); ');
    set( layer[ clickpane ].onclick, get( onclickstring ) );

    This PUSHES the values to the viewer.
    So you can pass values, but - so my thoughts - but not anymore AFTER the embed statment.

    You would have to embed a JS function, that "PULLS" Values called from krpano actions while viewer executes - compare Klaus examples under "javascript-interface" and "js-sync xxx".
    Did that help?

    cheers

    Hi All,
    hi Klaus,

    I pass variables to my XML from the HTML in many cases successfully.

    Example is

    Zitat

    viewer= createPanoViewer({swf:"ANYPANO.swf", xml:"ANYPANO.xml", target:"pano", id:"krpanoSWFObject", html5:"auto", passQueryParameters:true, wmode:"opaque"});
    viewer.addVariable("root", window.location.href);
    ...

    The variable <root> can be adressed with this name within XML.

    Using this to follow the documentation given in:

    Zitat

    https://krpano.com/docu/xml/#url-notes

    ...
    %$VARIABLE% - Use the value of the given 'VARIABLE' - this can be
    any krpano variable,
    but it must be defined before the current xml or scene will be
    loaded, e.g. already in the html file or before loadpano(), loadscene()
    calls.

    in order to have a flexible INCLUDE STATEMENT like (using a placeholdername in my below example <myvariable_from_html_via_JS_here>

    Zitat

    <include url="%BASEDIR%/plugins/ %$myvariable_from_html_via_JS_here% / MyPanoDetailDefs.xml" />

    I get the XML load error showing the %$...% content unparsed.
    It looks, as if krpano does not parse the viewer.addvariable content into the %$...% construction.

    Any Ideas?

    Target:
    use all the same xml files but INCLUDE different PARAMETER xml-files for Panos flexible called from outside via html:

    Zitat

    www.<site>.<dom>/<file>.html#parameter1=<value1>?parameter2=<value2>

    BTW - the parsing and passing works fine with variable used and read with <action>s but nit with in the URL ATTRIBUTE.

    Thanks guys
    *smile*

    Hi,

    thanks to this blog, I have a little loop where i turn on/off hotspots etc in
    loop by criteria. e.g. in a tour belonging to this pano, or specific infospot etc
    etc

    From this I built a loop to REMOVE the some "krpano elements". The loop works fine.

    So here the example - I want to remove the skin buttons (THERE IS a reason I do
    not just set "visible false"):

    STYLE:
    <style name="MyButtons" ... tag="controlbuttons" ..../>

    BUTTON PLUGIN
    <plugin name="PRESS_ME" style="MyButtons|tooltip" ...../>

    CALL:
    remove_hotspots/plugin( plugin, 'dumy', 'dumy', tag, controlbuttons );

    dumy dumy is, because i once was setting values .. not use, but till now i did not want
    to go into redesign of the loop for the remove-action.

    ACTION:
    <action name="remove_hotspots/plugin">
    sub(i,%1.count,1);
    if(i GE 0, rmv_loop_all_hotspots/plugin(get(i),%1,%2,%3,%4,%5,%6,%7) );
    </action>


    %1 is "plugin"
    %2 and %3 are dumy
    %4 is "tag"
    %5 is "controlbuttons"

    Now the removeaction
    !!!! Each variable %x now "moves" by 1 because the counter variable
    become %1 when call this action

    With my way to call, ONLY the section with trace "1. Set of Parms "
    IS HIT / MET.

    It removes the plugins / layers, keeps plugins / layers not meeting the criteria, BUT..

    1.) my tracing delivers Nonsens *cry* *cry*
    2.) MY TRACES drop messi information as I would expect to see the NAME of the PLUGIN to meet the criteria, but i see ... sthing ... and

    neither get(%2[%1]) nor just %2 leads to "plugin" .. always confused abaout the syntax ==> always get "object kinterface...."
    ==> I would likt to see in the trace the TYPE of ELEMENT i adress better that met the criteria (layer / plugin, hotspot)


    <action name="rmv_loop_all_hotspots/plugin">
    if (%7 == null
    , <!-- NO 2. Set of Params to Compare , would be %7 and %8 -->
    if (%5 == null
    , <!-- NO 1. Set of Params to Compare , so just if match, then REMOVE it -->
    if (%2 == layer, removelayer ( %1 ) );
    if (%2 == hotspot, removehotspot( %1 ) );
    trace( 'NO 1. Set of Parms Type (Lay, Plug, Spot: ',get(%2[%1]),' name: ',%2[%1].name,' Var is: ',%5,' of value: ',%6);
    , <!-- 1. Set of Params to Compare , so Compare the Variable %5 to Value %6 -->
    if (%2[%1].%5 == %6
    , <!-- and if match, then if match, then REMOVE it -->
    if (%2 == layer, removelayer ( %1 ) );
    if (%2 == hotspot, removehotspot( %1 ) );
    trace( ' 1. Set of Parms Type (Lay, Plug, Spot: ',get(%2[%1]),' name: ',%2[%1].name,' Var is: ',%5,' of value: ',%6);
    );
    );
    , <!-- !!!! WE HAVE A 2. Set of Params to Compare !!!! -->
    if (%2[%1].%7 == %8
    , <!-- and if match, then Compare the Variable %5 to Value %6 -->
    if (%2[%1].%5 == %6
    , <!-- and if match, then REMOVE it -->
    trace( ' + 2. Set of Parms Type (Lay, Plug, Spot: ',get(%2[%1]),' name: ',%2[%1].name,' Var is: ',%5,' of value: ',%6);
    if (%2 == layer, removelayer ( %1 ) );
    if (%2 == hotspot, removehotspot( %1 ) );
    );
    );
    );
    dec(i);
    if(i GE 0, rmv_loop_all_hotspots/plugin(get(i),%2,%3,%4,%5,%6,%7,%8) );
    </action>


    Thanks for supporting me.

    H,

    thanks.

    Means in other words also:
    DO NOT ENCRYPT the EMBEDPANO- equivalent JS file, right?

    Your assumption, there might have been already encrypted files, is very uncertain, as i very seldom use the encrypt option for ALL FILES, only if I transfer ZIPs to a webmaster.
    Additionally this did not happen, dropping the same files at once driectly on to the droplet (which I did not do befroe, as I did not want to maintain the backups, because I saved them in advance).

    My feeling stays, it is something within the tools batching logok..

    Anyhow, Klaus, thanks.

    regards
    Helge

    Hi all,
    hi Klaus,

    when droping a path/folder or dropping a selection of single XML-Files to the ENCRYPT Section of krpano tools.app, the tool ends processing with message like xx processed (yy unfinished with error) - or so.
    WHEN using the same files dropping and encrypting one-by-one => no error.

    Also, there ist no error log, that would show WHY errors occured (??? improvement potential or knowledge lack on my side).

    Finally, using the drop path or drop folder option, the embedpano.js also get encrypted ==> AND STOPS WORKING. (IS THAT MY FAULT?). I did not check with any other JS like radar, compass etc.

    Anybody else recognizing this?

    MacBook Pro Retina with 10.8.5.

    regards

    Klaus,

    following your suggestion, I tried TWEENing for the blinking of the borders of a Polygon HotSpot .
    Looks fine.

    BUT
    when having more than one similiar hotspot in one pano, they blink SEQUENTIALLY instead in PARALLEL or maybe a little OVERLAPED.

    Anybody any ideas?

    Code Example
    <action name="polygonhotspot_blink">
    set (hotspot[%1].borderalpha , get(startalpha) );
    set (hotspot[%1].borderwidth , get(startline) );
    delayedcall(1,
    tween(hotspot[%1].borderalpha , 0.95 , 1 );
    tween(hotspot[%1].borderwidth , 3.8 , 1 );
    wait(1); );
    delayedcall(1,
    tween(hotspot[%1].borderalpha , get(startalpha), 1 );
    tween(hotspot[%1].borderwidth , get(startline) , 1 );
    wait(1); );
    delayedcall(0.5,polygonhotspot_blink( %1 ) );
    </action>

    <style name="blink_polygonhotspot"
    startalpha="0.05"
    startline="0.2"
    frame="0"
    lastframe="19"
    onloaded="polygonhotspot_blink( get(name) );"
    />

    <hotspot name="little_square" style="blink_polygonhotspot"
    ath="73.15" atv="-5.42"
    >
    <point ath="00.00" atv="-10.52" />
    <point ath="03.67" atv="-10.52" />
    <point ath="03.67" atv="-06.90" />

    <point ath="00.00" atv="-06.90" />

    </hotspot>

    best regards

    Klaus,

    is your krpano version up to date?
    With 1.18 the polygonal hotspot should update/redraw automatically when changing its properties.

    that was it => solved. Thanks

    Here I have another Issue:

    Btw (just as note) - simply tweening the borderalpha/borderwidth properties would be possible too.

    When using multi-variable Tween i could not fugure out correct syntax.
    E.g.

    tween( view.hlookat | view.fov, 90.0 | 35, 4)
    did not work.
    tween( view.hlookat, 90.0 | view.fov, 35, 4)
    neither. Anyhow I would expect the first syntax to be correct.

    Thanks again

    Hi,

    I made the borders of a Polygin HotSpot blink - using the logic Klaus provided with his animated HotSPots.

    Unfortunately th refresh (ans do the blinking) is linked to the referesh of the STAGE - i.e. while moving the Pano ... fine.
    If Pano is idle => no blinking.

    Any ideas to make it better than below???
    <!-- polygon hotspot animation -->
    <action name="polygonhotspot_blink">
    inc(frame,1,get(lastframe),0 );
    mul(blink , frame,get(startalpha) );
    mul(linewidth , frame,get(startline) );
    set(hotspot[%1].borderalpha , get(blink) );
    set(hotspot[%1].borderwidth , get(linewidth) );
    delayedcall(0.15, polygonhotspot_blink( %1 ) );
    </action>

    <style name="blink_polygonhotspot"
    startalpha="0.05"
    startline="0.2"
    frame="0"
    lastframe="19"
    onloaded="polygonhotspot_blink( get(name) );"
    />

    <hotspot name="little_square"
    style="sitzplatz|blink_polygonhotspot"
    ath="73.15" atv="-5.42"
    >
    <point ath="00.00" atv="-10.52" />
    <point ath="03.67" atv="-10.52" />
    <point ath="03.67" atv="-06.90" />
    <point ath="00.00" atv="-06.90" />
    </hotspot>

    Thanks to Cracks and thanks to Klaus for the wonderful Tool. *smile* *smile* *smile* *smile*

    Suso,

    I am doing a lot with panos, but have not started with "objects". So I have some questions:
    a.) can you prvide any example that you drag and drop to the "MAKE OBJECT droplet" on a Mac (or have as input to windows version)?
    b.) how do you sample the single shots (so i guess) into the sample thta is the input to "MAKE OBJECT droplet"(or is it a set of single images with a concrete naming sequence)?

    for now I did not find any description how to use Klaus "MAKE OBJECT droplet".

    thanks so far and a merry XMAS.

    .....

    Try changing this:

    Code
    set( layer[ text ].onautosized, 'copy(layer[textscroller].height, height);' );


    to this:

    Code
    set( layer[ text ].onloaded, 'copy(layer[textscroller].height, height);' );

    The scrollarea needs to get (to know) the size of the image to be able to work correctly.
    .....

    Klaus, thx, that was the solution.
    "overscroll" went back to ZERO.

    I am really happy I could find you attention with that issue.

    Just to let you and other interested peopl know, how i do the dynamics:

    This defines the windows:
    <PIXwin_list>
    <item name="PIXwin_00" PIXwin="PIXwin_00" title="PIXwin_00 Bedienungsanleitung" id="00" br360_pano="p_A00" />
    <item name="PIXwin_01" .../>
    ...
    </PIXwin_list>

    <!-- each window has an entry as such
    <PIX_window name="PIXwin_00" caption="PIXwin_00 Test des PIXScrollings[br](c) Helge Bertling" >
    <item name="PIX_00" url="ºSEDIR%/super_long_narrow_text.jpg" />
    </PIX_window>
    <PIX_window name="PIXwin_01" caption=" .. bla bla .." >
    <item name="PIX_01" url=" ... " />
    </PIX_window>

    This action sets up the different layers:
    <action name="makePIXlayers">
    if ( action_trace_list.item[ %0 ].trace , trace( %0 ,' PIXwin_list.item.count: ', PIXwin_list.item.count ); );

    <!-- in case. no pic-galeries assigned via <PIXwin_list> structure, do not go to loop -->
    if ( PIXwin_list,
    if ( PIXwin_list.item.count,
    for(
    set(k,0), k LT PIXwin_list.item.count, inc(k),
    <!-- makePIXlayer( PIXwin_name, PIXwin_title); -->
    makePIXlayer( get(PIXwin_list.item[get(k)].name), get(PIXwin_list.item[get(k)].title) ) ;
    );
    );
    );
    </action>

    This is within MakePIXlayer:
    .....
    txtadd( PIXwin_scroller, %1, '_scroller' );

    removelayer( get( PIXwin_scroller ) );
    addlayer( get( PIXwin_scroller ) );
    set( layer[ get( PIXwin_scroller ) ].parent, get( PIXwin_mask ) );

    ...

    and so on (see first entry .. this was the structure to be turned into the dynamic creation.

    Thanks again for support
    *smile* *thumbsup*

    Hi friends,

    Currently I am managing a lot off virtual tours e.g. for hotels and restaurants.
    I managed to have kind of a picture gallery where you can flip between pictures and have a counter like 1 / 7 like everybody knows from newspaper webpages and their galleries.
    I can create those dynamically basing on an item list. I have the same managed for text fields.
    But now I am suffering from one idea:
    I would like to have a hot spot popping up with scrolling area with scroll sliders window containing a very long e.g. JPEG image with a manual how to use the buttons.
    ( why it this way: the HTML formatting features especially including button graphics and stuff is very limited. So I thought off doing this little manual e.g. in a Word document to convert to PDF and export JPEG which results in just an example 300 pixels wide and 5000 pixels long so you can read it but you must scroll through it).

    What have I done?
    I was using one of Klaus famous examples with the scrolling text field and in the below given example I simply exchanged the URL element from textfield.swf to my image.

    Funny is:
    It does not move in any way if "overscroll" ( around later in the scrollarea.swf) is zero.
    Putting this parameter to a value of one, you can track it but the "onscoll" event with the "hoverscroll" comparison is anymore fired as the basis of calculation for the new scrollslider position, but hoverscroll is "0".

    The following is the origin of Klaus to be found in examples/xml-usage/scrollingtextfield:

    <!-- the textfield -->
    <layer name="textfield" url="textfield.png" align="center" x="0" y="0" width="350" height="300" scale9grid="6|6|268|188">

    <!-- the scrolling text -->
    <layer name="textmask" type="container" align="lefttop" x="5" y="5" width="-30" height="-10" maskchildren="true">
    <layer name="textscroller" url="%SWFPATH%/plugins/scrollarea.swf" alturl="%SWFPATH%/plugins/scrollarea.js" mwheel="true" direction="v" overscroll="0" align="lefttop" width="100%" height="100%" onscroll="if(hoverflow GT 0, div(yp,toverflow,hoverflow);Math.min(yp,1);Math.max(yp,0); copy(th,layer[scrollbar].pixelheight);sub(th,layer[scrollup].pixelheight);sub(th,layer[scrolldown].pixelheight);sub(th,layer[scrollslider].pixelheight); mul(yp,th);add(yp,layer[scrollup].pixelheight); copy(layer[scrollslider].y,yp); );">
    <layer name="text" url="%SWFPATH%/plugins/textfield.swf" align="lefttop" x="0" y="0" width="100%" autoheight="true" background="false" border="false" onautosized="copy(layer[textscroller].height, height);"
    padding="10 15"
    html="data:testtext"
    css="color:#000000; font-family:Arial; font-size:12px;"
    />
    </layer>
    </layer>

    <!-- the scrollbar -->
    <layer name="scrollbar" type="container" bgcolor="0x000000" bgalpha="0.25" align="righttop" x="5" y="5" width="19" height="-10">
    <layer name="scrollup" url="dirbutton.png" align="righttop" x="19" rotate="-90" crop="0|0|19|19" onovercrop="0|19|19|19" ondowncrop="0|38|19|19" ondown="asyncloop(pressed, layer[textscroller].scrollby(0,+1));" />
    <layer name="scrolldown" url="dirbutton.png" align="rightbottom" x="19" rotate="+90" crop="0|0|19|19" onovercrop="0|19|19|19" ondowncrop="0|38|19|19" ondown="asyncloop(pressed, layer[textscroller].scrollby(0,-1));" />
    <layer name="scrollslider" url="sliderbutton.png" align="righttop" x="0" y="19" crop="0|0|19|19" onovercrop="0|19|19|19" ondowncrop="0|38|19|19" ondown="if(layer[textscroller].hoverflow GT 0, copy(cy,y);copy(sy,mouse.stagey);dragging(); );" dragging="if(pressed, sub(dy,mouse.stagey,sy);add(ny,cy,dy);Math.max(ny,layer[scrollup].pixelheight); copy(th,layer[scrollbar].pixelheight);sub(th,layer[scrolldown].pixelheight);sub(th,layer[scrollslider].pixelheight);Math.min(ny,th); copy(y,ny); sub(ny,layer[scrollup].pixelheight);sub(th,layer[scrollslider].pixelheight);div(ny,th); copy(fh,layer[textscroller].hoverflow); mul(fh,-1); mul(ny,fh); layer[textscroller].stopscrolling(); copy(layer[textscroller].y,ny); delayedcall(0,dragging()); );" />
    </layer>

    </layer>

    I turn this into following ( and basing on this format I completely made this dynamic which is not relevant here):

    <action name="maketxtlayers" >
    if ( action_trace_list.item[ %0 ].trace , trace( ' Actionname : ', %0 , ' =: ', %1 ); );

    <!-- the textfield -->
    addlayer( textfield );
    set( layer[ textfield ].url, textfield.png );
    set( layer[ textfield ].align, center );
    set( layer[ textfield ].x, 0 );
    set( layer[ textfield ].y, 0 );
    set( layer[ textfield ].width, 350 );
    set( layer[ textfield ].height, 300 );
    set( layer[ textfield ].scale9grid, '6|6|268|188' );

    <!-- the scrolling text -->
    addlayer( textmask );
    set( layer[ textmask ].parent, textfield );
    set( layer[ textmask ].type, container );
    set( layer[ textmask ].align, lefttop );
    set( layer[ textmask ].x, 5 );
    set( layer[ textmask ].y, 5 );
    set( layer[ textmask ].width, -30 );
    set( layer[ textmask ].height, -10 );
    set( layer[ textmask ].maskchildren, true );

    addlayer( textscroller );
    set( layer[ textscroller ].parent, textmask );
    set( layer[ textscroller ].url, %SWFPATH%/plugins/scrollarea.swf );
    set( layer[ textscroller ].alturl, %SWFPATH%/plugins/scrollarea.js );
    set( layer[ textscroller ].mwheel, true );
    set( layer[ textscroller ].direction, v );
    set( layer[ textscroller ].overscroll, 1 ); <!-- value changed here from 0 to 1 -->
    set( layer[ textscroller ].align, lefttop );
    set( layer[ textscroller ].width, 100% );
    set( layer[ textscroller ].height, 100% );
    set( layer[ textscroller ].onscroll, 'if(hoverflow GT 0, div(yp,toverflow,hoverflow);Math.min(yp,1);Math.max(yp,0); copy(th,layer[scrollbar].pixelheight);sub(th,layer[scrollup].pixelheight);sub(th,layer[scrolldown].pixelheight);sub(th,layer[scrollslider].pixelheight); mul(yp,th);add(yp,layer[scrollup].pixelheight); copy(layer[scrollslider].y,yp); );' );


    addlayer( text );
    set( layer[ text ].parent, textscroller );
    <!-- set( layer[ text ].url, %SWFPATH%/plugins/textfield.swf ); -->
    set( layer[ text ].url, '%BASEDIR%/super_long_narrow_text.jpg' );

    set( layer[ text ].align, lefttop );
    set( layer[ text ].x, 0 );
    set( layer[ text ].y, 0 );
    set( layer[ text ].width, 100% );
    set( layer[ text ].autoheight, true );
    set( layer[ text ].background, false );
    set( layer[ text ].border, false );
    set( layer[ text ].onautosized, 'copy(layer[textscroller].height, height);' );
    <!-- set( layer[ text ].padding, '10 15' );
    set( layer[ text ].html, get(data[testtext].content ) );
    set( layer[ text ].css, 'color:#000000; font-family:Arial; font-size:12px;' );
    -->


    <!-- the scrollbar -->
    addlayer( scrollbar );
    set( layer[ scrollbar ].parent, textfield );
    set( layer[ scrollbar ].type, container );
    set( layer[ scrollbar ].bgcolor, 0x000000 );
    set( layer[ scrollbar ].bgalpha, 0.25 );
    set( layer[ scrollbar ].align, righttop );
    set( layer[ scrollbar ].x, 5 );
    set( layer[ scrollbar ].y, 5 );
    set( layer[ scrollbar ].width, 19 );
    set( layer[ scrollbar ].height, -10 );

    addlayer( scrollup );
    set( layer[ scrollup ].parent, scrollbar );
    set( layer[ scrollup ].url, dirbutton.png );
    set( layer[ scrollup ].align, righttop );
    set( layer[ scrollup ].x, 19 );
    set( layer[ scrollup ].rotate, -90 );
    set( layer[ scrollup ].crop, 0|0|19|19 );
    set( layer[ scrollup ].onovercrop, 0|19|19|19 );
    set( layer[ scrollup ].ondowncrop, 0|38|19|19 );
    set( layer[ scrollup ].ondown, 'asyncloop(pressed, layer[textscroller].scrollby(0,+1));' );


    addlayer( scrolldown );
    set( layer[ scrolldown ].parent, scrollbar );
    set( layer[ scrolldown ].url, dirbutton.png );
    set( layer[ scrolldown ].align, rightbottom );
    set( layer[ scrolldown ].x, 19 );
    set( layer[ scrolldown ].rotate, +90 );
    set( layer[ scrolldown ].crop, 0|0|19|19 );
    set( layer[ scrolldown ].onovercrop, 0|19|19|19 );
    set( layer[ scrolldown ].ondowncrop, 0|38|19|19 );
    set( layer[ scrolldown ].ondown, 'asyncloop(pressed, layer[textscroller].scrollby(0,-1));' );


    addlayer( scrollslider );
    set( layer[ scrollslider ].parent, scrollbar );
    set( layer[ scrollslider ].url, sliderbutton.png );
    set( layer[ scrollslider ].align, righttop );
    set( layer[ scrollslider ].x, 0 );
    set( layer[ scrollslider ].y, 19 );
    set( layer[ scrollslider ].crop, 0|0|19|19 );
    set( layer[ scrollslider ].onovercrop, 0|19|19|19 );
    set( layer[ scrollslider ].ondowncrop, 0|38|19|19 );
    set( layer[ scrollslider ].ondown, 'if(layer[textscroller].hoverflow GT 0, copy(cy,y);copy(sy,mouse.stagey);dragging(); );' );
    set( layer[ scrollslider ].dragging, 'if(pressed, sub(dy,mouse.stagey,sy);add(ny,cy,dy);Math.max(ny,layer[scrollup].pixelheight); copy(th,layer[scrollbar].pixelheight);sub(th,layer[scrolldown].pixelheight);sub(th,layer[scrollslider].pixelheight);Math.min(ny,th); copy(y,ny); sub(ny,layer[scrollup].pixelheight);sub(th,layer[scrollslider].pixelheight);div(ny,th); copy(fh,layer[textscroller].hoverflow); mul(fh,-1); mul(ny,fh); layer[textscroller].stopscrolling(); copy(layer[textscroller].y,ny); delayedcall(0,dragging()); );' );

    </action>


    HAS ANYBODY ANY IDEA WHY INSTEAD OFF THE TEXTFILED THE JPG DOES NOT MOVE?
    My analysis reduced everything to the "layer[ textscroller ].onscroll, 'if(hoverflow " comparison togehter woth overscrol value (see above).
    Taking e.g toverscroll, you get effects but no more simple scaling basis for the scrollslider.

    thx

    Alexey,

    thanks. *thumbup*
    Yes ... krpano is powerful .. so it has many many features ... and lines of code in documentation. *smile*

    Thanks for the advice. As you can see at my own answer to myself, i found this out - unfortunatley after a significant time (not heaving read the docu).
    Anhyow, this now is ingrained and i made another step forward.

    thanks again and with my next issue i straight forward pick your support ... and if it is only to find the appropriate hint to the doc. *cool*

    thx again and all the best for you and your country.

    Hi,

    follwing the current day resp. nigth time i tried that stuff step by step.

    Solution - or better workaround is - the style does not affect the ADDLAYER action.
    BAD IS:
    addlayer(get(pic));
    set(layer[get(pic)].style, flagtype-bannertextstyle);

    So in order to get it done one needs to as folows.
    GOOD is:
    addlayer(get(pic));
    set(layer[get(pic)].url,%BASEDIR%/plugins/textfield.swf);
    set .... copy .... etc

    AND set the parameters for the textfield step by step, like
    set(layer[get(pic)].css, text-align:center; color:#FFFFFF; font-family:Arial; font-weight:bold; font-size:14px; );

    Not so sexy like the use of the STYLE after the ADDLAYER action, but now it works.


    Thanks for my answer *wink*

    At Klaus:
    Bug or is this line not correct:
    set(layer[get(pic)].style, flagtype-bannertextstyle);
    where
    >> flagtype-bannertextstyle << is the name of the style .. see previous post

    cheers


    <hotspot name="portraitfresko-west1"
    style="hotspot_ani_red|flagtype-bannertext|fresco_hotspot"
    alpha="1" ath="-10.62" atv="-10.95" onhover="" onout="" keep="true"
    tooltip="Kirchenlehrer:[br]Albertus"
    pic="albertusmagnus"
    />

    <style name="flagtype-bannertext"
    onclick="showflagtype-bannertext();"
    />

    <style name="flagtype-bannertextstyle" keep="true"
    url="%BASEDIR%/plugins/textfield.swf"
    visible="true" alpha="1"
    enabled="true"
    align="lefttop"
    edge="bottom"
    padding="4 4 20 4"
    autowidth="true"
    autoheight="true"
    background="false" backgroundcolor="0xFFFFFF" backgroundalpha="1.0"
    border="false" bordercolor="0x000000" borderalpha="1.0"
    borderwidth="1.0" roundedge="0"
    shadow="0.0" shadowrange="4.0" shadowangle="45" shadowcolor="0x000000" shadowalpha="1.0"
    textshadow="1" textshadowrange="6.0" textshadowangle="90" textshadowcolor="0x000000" textshadowalpha="1.0"
    css="text-align:center; color:#00FFFF; font-family:Arial; font-weight:bold; font-size:14px;"
    />

    <action name="showflagtype-bannertext">
    <!-- creates a new layer and shal show text -->
    if(layer[get(pic)] === null
    ,
    addlayer(get(pic));
    set(layer[get(pic)].style, flagtype-bannertextstyle);
    txtadd(plugin[MyTourControlVars].spotname1,'hotspot[',get(name),'].name');
    set(layer[get(pic)].parent,get(plugin[MyTourControlVars].spotname1) );
    set(layer[get(pic)].visible,true);
    set(layer[get(pic)].distorted,true);
    set(layer[get(pic)].zorder,2);
    set(layer[get(pic)].scale,1.0);
    set(layer[get(pic)].alpha,1.0);
    txtadd(onloadstring,'copy(layer[',get(pic),'].html, tooltip); showlog(); ' );
    set (layer[get(pic)].onloaded, get(onloadstring) );
    copy(layer[get(pic)].html, get(tooltip) );
    trace('layer is null: ', get(pic) );
    trace('picfilename: ', get(picfilename) );
    trace('parent spot: ', get(plugin[MyTourControlVars].spotname1) );
    trace('onloadstring:', get(onloadstring) );
    trace('tooltip: ', get(tooltip) );
    trace('style : ', get(layer[get(pic)].style) );
    ,
    txtadd(picfilename,'%CURRENTXML%/images/PopUps/PopUp_',get(pic),'.jpg');
    copy(layer[get(pic)].url,picfilename );
    copy(layer[get(pic)].html,get(tooltip) );
    );
    </action>

    Hi all,

    I dont get this resolved .. need help.

    What Do i want to .. waht have i done:
    I want to have hotspot with "tooltips" that stay visible and follow the hotspot when moving the pano - just like flags-type-banners.

    What have i done:
    I made a combination of Klaus' "flying in" hotspots from the wine cellar and Klaus' tooltips example.

    Explanation:
    the hotspot has the 'pic' value as in Klaus' origin.
    i have a style
    flagtype-bannertext like Klaus "pic-hotspot"
    FOR NOW - while expermenting - i use the onclick on this hotspot.
    Other than Klaus i now use addlayer (instead addhotspot), because i need to link the textstyle.swf to that layer.
    In order to ease the ADDLAYER creation in the ACTION "
    showflagtype-bannertext" i moved many layer-ekement to a style which i refer to while creating it.

    Why ADDLAYER
    I want to have 12 spots active in thepano (see ref below given), so i need dynamically created layers

    What are the symptoms:
    clicking on the hotspot all traces appear as i would expect WHEN THE LAYER IS ADDED:
    INFO: layer is null: albertusmagnus
    INFO: picfilename: null
    INFO: parent spot: portraitfresko-west1
    INFO: onloadstring:copy(layer[albertusmagnus].html, tooltip); showlog();
    INFO: tooltip: Kirchenlehrer:[br]Albertus
    INFO: style : flagtype-bannertextstyle

    But no tooltip appears. *sad*
    Clicking the second time WHEN THE LAYER ALREADY EXISTS, the picture PICFILENAME appears
    (see the comma indication FALSE branch for
    f(layer[get(pic)] === null,)

    Ths means to me:
    Layer creation fine
    no hidden trapp currently (alpha values, visibles, scale etc)
    BUT OBVIOUSLY the layerstyle with the textfield.swf is not beeing activated

    Any ideas guys??? *whistling*

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

    The pano where I want to use it is the following:
    http://www.pandorama-place.com/panoramen/draf…st/BibTest.html
    using the leftmost button, one turns on all hostspots for the fantastic frescos and THEN THEN THE TITLE OF THE FRESCO shall be seen while moving to invite people to look at.
    (btw it just for now is webspace. page ic under construction)

    AND ... KLAUS ... a wonderful wonderful tool and exciting examples provided by you
    THANK YOU


    ... oh no .. is that the truth? I do not believe what the apple guys all fail on.
    thanks for clarification.

    So you would recoemmend to check for the device and on IOS avoid the little planet, right?

    other question:
    when you integrate a pano into the web, does your link point to the krpano generated html? or to the .SWF?
    (reason for asking: with the html "as-is" on a PC or MAC - not talking about the tablets - the onhover Text on hotspots do not appear? )

    what is the answer, what is your kind recommendation?

    thanks guys

    Hi all, hi Klaus,

    Several points but the one after the other:
    Hi you was an iPad with iOS 7.1.
    A friend of mine uses an android – don't know the correct version - but I guess very recent versions.

    I built a pano with krpano 1.17 licensed starting with a little planet view.
    On the android the start you off the little planet is correct and it correctly twens in and smoothly starts autorotating.
    On the iPad with you is not a little planet but simply extremely stretched. It twens in then and before starting to autorotate smothly it has a jump to a slightly different view position.

    On any other operating system the pano behaves like on the android.
    Can be seen here:
    http://www.pandorama-place.com/panoramen/draf…ten/Garten.html

    the page is brandnew and emty - only via the diect links you can see sthng.

    any hints od ideas?
    any more information precision required?