JavaFX z Arią - powrót do strony głównej

Animacja poklatkowa z GIF-ów na HTML5 canvas

Zamiast uruchamiać gifa w znaczniku ‘img’ możemy uruchomić animację serii gifów na HTML5 canvas.

Klasa Listing31c_04

Ściągnij klasę Listing31c_04.zip

package rozdzial31c;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

import java.net.URL;

public class Listing31c_04 extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage) {
        try {
            VBox root = new VBox();
            WebView wv = new WebView();
            WebEngine we = wv.getEngine();
            URL url = this.getClass().getClassLoader().
                getResource("rozdzial31c/html_animation2.html");
            System.out.println(url);
            if (url != null) {
                we.load(url.toExternalForm());
            }
            root.getChildren().add(wv);
            Scene scene = new Scene(root, 454, 567);
            stage.setScene(scene);
            stage.setTitle("Animacja poklatkowa JavaScript");
            stage.setOnCloseRequest(e -> Platform.exit());
            stage.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Plik html_animation2.html

Ściągnij plik html_animation2.zip

<!DOCTYPE html>
<html lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="HTML5 canvas - animacja HTML" />
<meta name="keywords" content="HTML5, canvas, animacja HTML">
<title>HTML5 canvas - animacja HTML</title>
<script>
	var i = 0;
	var path = new Array();
	path[0] = "zaba-smut_01.gif";
	path[1] = "zaba-smut_02.gif";
	path[2] = "zaba-smut_03.gif";
	path[3] = "zaba-smut_04.gif";
	path[4] = "zaba-smut_05.gif";
	path[5] = "zaba-smut_06.gif";
	path[6] = "zaba-smut_07.gif";
	path[7] = "zaba-smut_08.gif";
	path[8] = "zaba-smut_09.gif";
	path[9] = "zaba-smut_10.gif";
	path[10] = "zaba-smut_11.gif";
	path[11] = "zaba-smut_12.gif";
	path[12] = "zaba-smut_13.gif";
	function swapImage() {
		document.slide.src = path[i];
		if (i < path.length - 1)
			i++;
		else
			i = 0;
		setTimeout("swapImage()", 120);
	};
	window.onload = swapImage;
</script>
</head>
<body>
	<section>
		<h2 class="derby">Animacja w miejscu: smutna żaba</h2>
		<img name="slide" src="zaba-smut_01.gif" width="454" 
height="567" />
	</section>
</body>
</html>

Po uruchomieniu zobaczymy animację uruchomiona na HTML5 canvas.

zaba-smut