📄 cuecardssrc.html
字号:
<!-- Copyright 1998 by Clayton Roberts. All rights reserved. -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<META name="keywords" content="free, Free, FREE, java, Java, JAVA, applet, Applet, APPLET, applets, Applets, APPLETS, collection, Collection, COLLECTION, free applet, Free Applet, FREE APPLET, free applets, Free Applets, FREE APPLETS, java applet, Java Applet, JAVA APPLET, java applets, Java Applets, JAVA APPLETS, applet collection, Applet Collection, APPLET COLLECTION, applets collection, Applets Collection, APPLETS COLLECTION, free applet collection, Free Applet Collection, FREE APPLET COLLECTION, free applets collection, Free Applets Collection, FREE APPLETS COLLECTION, java applet collection, Java Applet Collection, JAVA APPLET COLLECTION, java applets collection, Java Applets Collection, JAVA APPLETS COLLECTION, free java applet collection, Free Java Applet Collection, FREE JAVA APPLET COLLECTION, free java applets collection, Free Java Applets Collection, FREE JAVA APPLETS COLLECTION, world, World, WORLD, class, Class CLASS, world class, World Class, WORLD CLASS, Clayton Roberts, clayton roberts, CLAYTON ROBERTS, source, Source, SOURCE, code, Code, CODE, source code, Source Code, SOURCE CODE">
<META Name="DESCRIPTION" Content="The java source code used in the CueCards free applet :">
<META NAME="Copyright" CONTENT="Clayton Roberts 1998">
<TITLE>FREE APPLETS CueCards Applet Source</TITLE>
</head>
<body bgcolor="WHITE" text="BLACK" link="blue" vlink="lightblue" leftmargin=50>
<center>
<font face="Arial,Helvetica">
<h1>CueCards Applet Source Code</h1></font>
by
<A HREF="mailto:davidg@polyphony.demon.co.uk"><b>David Griffiths</b></a><br>
<A HREF="http://www.demon.co.uk/davidg/frames/spigots.htm" target="_new">www.demon.co.uk/davidg</A>
</center>
<hr>
<p>
<p>The java source code used in the
<a href="CueCards.html">CueCards</a> free applet :
<center>
<table>
<tr>
<td bgcolor="blanchedalmond">
<code>
<pre>
import java.awt.Graphics;<br>
import java.awt.Image;<br>
import java.awt.Color;<br>
import java.lang.Math;<br>
import java.awt.*;<br>
<br>
public class CueCards extends java.applet.Applet implements Runnable {<br>
static boolean dispCopy = false;<br>
Image origImg, backImg, animImg;<br>
int w1, h1;<br>
Graphics backG, finG;<br>
Thread nick;<br>
int frameNo = 0;<br>
int frames = 12;<br>
int period = 50;<br>
boolean needAnim = false;<br>
boolean imLoaded = false;<br>
// boolean imReady = false;<br>
boolean needImage = false;<br>
boolean animReady = false;<br>
double angle1;<br>
int imageNo = 1;<br>
Color backCol;<br>
<br>
public void init () {<br>
if (!dispCopy) {<br>
System.out.println ("cueCards v 1.0 for Java");<br>
System.out.println ("Copyright (c) "<br>
+ "David Griffiths, 1996. "<br>
+ "All rights reserved.");<br>
System.out.println ("For more information visit "<br>
+ "http://www.demon.co.uk/davidg,");<br>
System.out.println ("or contact: "<br>
+ "dgriffiths@msn.com");<br>
dispCopy = true;<br>
}<br>
backCol = new Color (Integer.parseInt(<br>
getParameter("bgcolor").substring(1),16));<br>
setBackground (backCol);<br>
loadImage ();<br>
}<br>
<br>
public void start () {<br>
if (nick == null) {<br>
nick = new Thread (this);<br>
nick.start ();<br>
}<br>
}<br>
<br>
public void stop () {<br>
if (nick != null) {<br>
nick.stop ();<br>
nick = null;<br>
}<br>
}<br>
<br>
public void run () {<br>
while (nick != null) {<br>
if (needImage) {<br>
needImage = false;<br>
loadImage ();<br>
}<br>
if (needAnim) {<br>
needAnim = false; <br>
animReady = false;<br>
createAnim ();<br>
}<br>
repaint ();<br>
// if (imReady && (frameNo < frames)) {<br>
if (frameNo < frames) {<br>
if (frameNo == (frames - 1))<br>
needAnim = true;<br>
frameNo++;<br>
}<br>
else if (frameNo >= frames) {<br>
if (frameNo == frames)<br>
needImage = true;<br>
if (frameNo == (frames << 1) - 1) {<br>
frameNo = 0;<br>
}<br>
frameNo++;<br>
}<br>
try {Thread.sleep (50);}<br>
catch (InterruptedException e) {}<br>
}<br>
}<br>
<br>
public void loadImage () {<br>
MediaTracker tracker = new MediaTracker(this);<br>
String nextImage = getParameter ("image" + imageNo);<br>
if (nextImage == null) {<br>
imageNo = 1;<br>
nextImage = getParameter ("image1");<br>
}<br>
imageNo++;<br>
imLoaded = false;<br>
// imReady = false;<br>
origImg = getImage (getDocumentBase(), nextImage);<br>
<br>
tracker.addImage(origImg, 0);<br>
<br>
// Wait until all images are fully loaded<br>
//------------------------------------------------------------------<br>
try tracker.waitForAll(); catch (InterruptedException e) {}<br>
<br>
w1 = origImg.getWidth (this);<br>
h1 = origImg.getHeight (this);<br>
// if ((w1 != -1) && (h1 != -1))<br>
// imReady = true; <br>
}<br>
<br>
public void rotateImage (Graphics g, double angle) {<br>
double twistAngle = angle;<br>
double quart = (Math.PI / 2.0);<br>
double oct = (Math.PI / 4.0);<br>
<br>
if (twistAngle > oct) {<br>
shearY (g, 1);<br>
shearX (g, 1);<br>
shearY (g, 1);<br>
twistAngle -= quart;<br>
}<br>
<br>
shearX(g, Math.tan (twistAngle / 2.0));<br>
shearY(g, Math.sin (twistAngle));<br>
shearX(g, Math.tan (twistAngle / 2.0));<br>
}<br>
<br>
public void shearX (Graphics g, double shearing) {<br>
double l;<br>
for (int i = 0; i < (h1<<1); i++) {<br>
l = ((double)i * -shearing)<br>
+ ((double)h1 * shearing);<br>
g.copyArea (0, i, ((w1 * 3) >> 1), 1, (int)l, 0);<br>
g.drawLine ((int)l, i, 0, i);<br>
g.drawLine ((int)l + ((w1 * 3) >> 1),<br>
i, (w1 * 3) >> 1, i);<br>
}<br>
}<br>
<br>
public void shearY (Graphics g, double shearing) {<br>
double l;<br>
for (int i = 0; i < ((w1 * 3) >> 1); i++) {<br>
l = ((double)i * shearing);<br>
g.copyArea (i, 0, 1, h1<<1, 0, (int)l);<br>
g.drawLine (i, (int)l, i, 0);<br>
g.drawLine (i, (int)l + (h1<<1), i, h1<<1);<br>
}<br>
}<br>
<br>
public void update (Graphics g) {<br>
paint (g);<br>
}<br>
<br>
public void paint (Graphics g) {<br>
// if ((frameNo < frames) && imReady) {<br>
if (frameNo < frames) {<br>
g.drawImage (origImg,<br>
0, (frameNo * frameNo * h1<br>
/ ((frames - 1) * (frames - 1))) - h1,<br>
this);<br>
}<br>
else if ((frameNo == frames) && animReady) {<br>
g.drawImage (origImg,<br>
0, 0, this);<br>
}<br>
else if ((frameNo > frames) && animReady) {<br>
int i = frameNo - frames;<br>
g.drawImage (animImg, 0, (-i * h1), this);<br>
}<br>
else <br>
if (origImg != null)<br>
g.drawImage (origImg, 0, 400, this); <br>
}<br>
<br>
public void createAnim () {<br>
System.gc();<br>
if (backImg == null) {<br>
backImg = createImage ((w1 * 3) >> 1, h1<<1);<br>
backG = backImg.getGraphics();<br>
animImg = createImage (w1, frames * h1);<br>
finG = animImg.getGraphics();<br>
backG.setColor (backCol);<br>
}<br>
for (int phase = 0; phase < frames; phase++) {<br>
backG.fillRect (0,0,w1,h1<<1);<br>
backG.drawImage (origImg, 0, 0, this);<br>
rotateImage (backG, 0.6 * Math.PI<br>
* (double) phase * (double) phase<br>
/ (double) frames / (double) frames);<br>
finG.drawImage (backImg,<br>
0, phase * h1, this);<br>
}<br>
animReady = true;<br>
}<br>
}<br>
</pre>
</code>
</td>
</tr>
</table>
</center>
<br clear=all>
<p>
<hr>
<center>
Free Java Applets Collection<br>
<a href="http://www.free-applets.com" target="_new">
<img alt="[Free Java Applets Collection]"
src="free-applets.gif"
width=110 height=34></a><br>
<A HREF="http://www.free-applets.com" target="_new">www.free-applets.com</A>
<br>
<br>Last updated:
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write(document.lastModified);
//-->
</SCRIPT>
</CENTER>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -