|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<plugin name="mouseFollowOnBtn" url="mouse-follow-on.png" alpha="0.9" visible="false" align="lefttop" edge="lefttop" y="-4" x="852" blendmode="normal" keep="true" onclick="action(mouseFollowOn);"/> <plugin name="mouseFollowOffBtn" url="mouse-follow-off.png" alpha="0.9" visible="true" align="lefttop" edge="lefttop" y="-4" x="852" blendmode="normal" keep="true" onclick="action(mouseFollowOff);"/> <action name="mouseFollowOn"> addplugin(mousefollow); set(plugin[mousefollow].enabled, true); set(plugin[mouseFollowOffBtn].visible, true); set(plugin[mouseFollowOnBtn].visible, false); </action> <action name="mouseFollowOff"> set(plugin[mouseFollowOffBtn].visible, false); set(plugin[mouseFollowOnBtn].visible, true); removeplugin(mousefollow); set(hlookat_moveforce, 0); set(vlookat_moveforce, 0); </action> |
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
package
{
import flash.display.Sprite;
import flash.events.Event;
import krpano_as3_interface;
public class followmouse extends Sprite
{
private var krpano : krpano_as3_interface = null;
private var control_mousetype_backup:String = null;
private var pluginpath : String = null;
private var pluginobj : Object = null;
public function followmouse()
{
if (stage == null)
{
this.addEventListener(Event.ADDED_TO_STAGE, startplugin);
this.addEventListener(Event.REMOVED_FROM_STAGE, stopplugin);
}
}
private function startplugin(evt:Event):void
{
krpano = krpano_as3_interface.getInstance();
//register actions to flash functions
pluginpath = evt.data;
pluginobj = krpano.get(pluginpath);
krpano.set(pluginpath+".stopit", startListening);
krpano.set(pluginpath+".startit", stopListening);
if ( krpano.get("version") < "1.0.7" )
{
krpano.call("error(followmouse plugin - wrong krpano version! 1.0.7 or higher needed);");
return;
}
// save current control mode
control_mousetype_backup = krpano.get("control.mousetype");
// disable default mouse control
krpano.set("control.mousetype", "off");
// add frame listener -- DISABLED SO YOU CAN MANUALLY CALL IT
//addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function stopListening():void
{
stopplugin(null);
}
private function startListening():void
{
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function stopplugin(evt:Event):void
{
// remove frame listener
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
// restore old controlmode
krpano.set("control.mousetype", control_mousetype_backup);
}
private function enterFrameHandler(event:Event):void
{
var mx:Number = stage.mouseX;
var my:Number = stage.mouseY;
var sx:Number = stage.stageWidth * 0.5;
var sy:Number = stage.stageHeight * 0.5;
// calc motion vectors: -1.0 to +1.0
var vx:Number = (mx - sx) / sx;
var vy:Number = (my - sy) / sy;
// advance it a little bit:
// - make moving slower in the middle
// - and faster in the outer regions
vx = (vx < 0 ? -1.0 : +1.0) * Math.pow(Math.abs(vx), 2.0);
vy = (vy < 0 ? -1.0 : +1.0) * Math.pow(Math.abs(vy), 2.0);
// stop very slow moving
if (Math.abs(vx) < 0.01) vx = 0;
if (Math.abs(vy) < 0.01) vy = 0;
// set move forces
krpano.set("hlookat_moveforce", vx);
krpano.set("vlookat_moveforce", vy);
}
}
}
|
|
|
Source code |
1 |
var swf = createswf("krpano.swf", "krpanoSWFObject", "100%", "100%");var area:Object = krpano.get("area"); var mx:Number = stage.mouseX * 0.5; var my:Number = stage.mouseY * 0.5; var sx:Number = area.pixelwidth * 0.5; var sy:Number = area.pixelheight * 0.5; swf.addVariable("xml", "test_area.xml"); swf.addParam("wmode","transparent"); swf.embed("krpanoDIV");
|
This post has been edited 1 times, last edit by "d&g" (Oct 26th 2010, 4:23pm)
yes, but only by editing the code,Hi, is there a way to use this plugin but only horizontal ?
I don't want to follow the mouse up and down, is it possible ?
|
|
Source code |
1 |
krpano.set("vlookat_moveforce", vy);
|
Hi,is possible to control the acceleration and friction of the mouse?
This post has been edited 2 times, last edit by "BOX" (Mar 4th 2016, 1:39am)
I rewrote this for HTML5 if anyone wants it:
https://github.com/BOXNYC/krpano-plugins…/followmouse.js
Cheers!