home *** CD-ROM | disk | FTP | other *** search
/ Flash MX Savvy / FlashMX Savvy.iso / pc / MAC / Amapi3D / Amapi3DTrial_Edition / 3SPACE / CameraZoomBehavior.js < prev    next >
Encoding:
Text File  |  2001-02-20  |  1.7 KB  |  71 lines  |  [AMAS/AMAP]

  1. // -* CameraZoomBehavior.js *-
  2. //
  3. // Name: CameraZoom behavior
  4. // Description: 
  5. // Author:
  6. // Version: $Id: CameraZoomBehavior.js,v 1.4 2001/01/16 16:42:30 consumer Exp $
  7. //
  8.  
  9. function CameraZoomBehaviorInit(solidName, intensity)
  10. {
  11.   var id = makeUniqID("DragForce_" + solidName);
  12.   gDataTable[solidName] = id;
  13.  
  14.   var drag = makeDragForce(id, intensity, '0 0 0',
  15.                makeStringFromPoint(solidGetPosition(solidName)));
  16.  
  17.   var damp = makeDampingSolidForce(makeUniqID("DampingForce_" + solidName),
  18.                    "1",
  19.                    "1");
  20.  
  21.   nodeAppendChild(solidName, drag);
  22.   nodeAppendChild(solidName, damp);
  23.  
  24.   // Free the camera
  25.   nodeUpdateAttribute(solidName, 'fixed', '0');
  26. }
  27.  
  28. function CameraZoomBehaviorKill(solidName)
  29. {
  30. }
  31.  
  32. function CameraZoomBehaviorStart(solidName, zoomTarget, percent)
  33. {
  34.   var dragForceID = gDataTable[solidName];
  35.   var solidPosition = solidGetPosition(solidName);
  36.   var targetPosition = solidGetPosition(zoomTarget);
  37.   var dragPosition = pointInterpolate(solidPosition, targetPosition, percent);
  38.  
  39.   cameraLookAtSolid(solidName, zoomTarget);
  40.  
  41.   nodeUpdateAttribute(dragForceID,
  42.               'targetPoint',
  43.               makeStringFromPoint(dragPosition));
  44. }
  45.  
  46. function CameraZoomBehaviorStop(solidName)
  47. {
  48. }
  49.  
  50. //
  51. // Event functions
  52. //
  53.  
  54. function CameraZoomBehaviorStartEvent(obj, event)
  55. {
  56.   var camera = eventGetExtraParam(event, 'camera');
  57.   var zoomTarget = eventGetExtraParam(event, 'zoomTo');
  58.   var percent = eventGetExtraParam(event, 'percent');
  59.   var speed = eventGetExtraParam(event, 'speed');
  60.  
  61.   if (gDataTable[camera] == null) {
  62.     CameraZoomBehaviorInit(camera, parseFloat(speed) *    10);
  63.   }
  64.  
  65.   CameraZoomBehaviorStart(camera, zoomTarget, percent);
  66. }
  67.  
  68. function CameraZoomBehaviorStopEvent(obj, event)
  69. {
  70. }
  71.