home *** CD-ROM | disk | FTP | other *** search
Java Source | 2017-09-21 | 3.5 KB | 165 lines |
- package tiongson.expo;
-
- import java.net.URL;
- import java.awt.*;
- import java.applet.Applet;
-
- /** HotSpot.class
- * I grant anyone a royalty-free license
- * to use this applet or source code for non-commercial
- * use ONLY.
- *
- * This copyright must be included in any copies of this code.
- *
- * All other rigths reserved. Copyright phillip r. tiongson, 1997.
- *
- * In other words, if you aren't making money from selling this code
- * it is fine to use it. If you are making money, please give me some.
- * thanks, if you want to use it, contact me,
- * phillip tiongson, at sdallas@mit.edu.
- *
- * @author Phillip R. Tiongson
- * @version 1.0
- */
- class HotSpot extends Object {
-
- boolean absolute = false;
- boolean newBrowser = false;
- boolean sound = false;
- int x = 0;
- int y = 0;
- Rectangle rect = null;
- Polygon poly = null;
- URL href = null;
- Image image = null;
- long startTime = 0;
- int seed = 0;
-
- boolean on = false;
-
- public HotSpot(boolean abs, boolean newB, boolean sound,
- URL href, Image image, int x, int y, Polygon poly) {
-
- super();
-
- this.absolute = abs;
- this.newBrowser = newB;
- this.sound = sound;
- this.href = href;
- this.image = image;
- this.x = x;
- this.y = y;
- this.poly = poly;
-
- startTime = System.currentTimeMillis();
- seed = Intro.RandomInt(3000);
-
- // System.out.println(this.toString());
-
- }
-
- public HotSpot(boolean abs, boolean newB, boolean sound,
- URL href, Image image, int x, int y, Rectangle rect) {
-
- super();
-
- this.absolute = abs;
- this.newBrowser = newB;
- this.sound = sound;
- this.href = href;
- this.image = image;
- this.x = x;
- this.y = y;
- this.rect = rect;
-
- //System.out.println(this.toString());
- }
-
- public String toString() {
-
- return ("hotspot: abs:"+absolute+" newB:"+newBrowser+" sound:"+sound+
- " href:"+href+" image:"+image+" x:"+x+" y:"+y+ " rect:"+rect+
- " poly:"+poly);
-
- }
-
- public void paint(Graphics g, int offX, int offY, boolean debug) {
-
- if (debug) {
- g.setColor(Color.red);
-
-
- if (poly != null) {
-
-
- int number = poly.npoints;
- int[] localX = new int[number];
- int[] localY = new int[number];
-
- for(int i = 0; i < number; i++) {
- localX[i] = poly.xpoints[i] + offX;
- localY[i] = poly.ypoints[i] + offY;
- }
-
- g.fillPolygon(localX, localY, number);
-
- }
-
- if (rect != null) {
- g.fillRect(rect.x+offX, rect.y+offY, rect.width, rect.height);
- }
- }
-
- if ((image != null) && (on)) {
- if (!absolute) {
- offX += (int) (20*Math.sin(((startTime-System.currentTimeMillis())*Math.PI)/(5200.0+seed)));
- offY += (int) (15*Math.sin(((startTime-System.currentTimeMillis())*Math.PI)/(6000.0+seed)));
- }
- g.drawImage(image, x+offX, y+offY, null);
- }
-
- } //paint
-
- public boolean inside(int x, int y) {
-
- //System.out.println("checking inside "+href);
-
- if (poly != null) return poly.inside(x,y);
- if (rect != null) return rect.inside(x,y);
-
- return false;
-
- } // inside
-
- public void openHREF(Applet app) {
-
- if (href == null) return;
-
- if (sound) {
- app.play(href);
- return;
- }
-
-
- if (newBrowser) {
- java.applet.AppletContext nac = app.getAppletContext();
- nac.showDocument(href, "_top");
- } else {
- java.applet.AppletContext nac = app.getAppletContext();
- nac.showDocument(href);
- }
-
- return;
-
- } // openHREF
-
- public void show() {
- on = true;
- }
-
- public void hide() {
- on = false;
- }
-
- }
-