Flash Animation SWF in Java absielen

Status
Nicht offen für weitere Antworten.

Batikan

Mitglied
Hallo Liebe Freunde.

Gibt es eine Möglichkeit, eine Flash animation (swf) in Java Applikation einzubinden.
Es geht darum ein Spiel in Java Apllikation einzubauen.

LG
 
Gibt es eine Möglichkeit, eine Flash animation (swf) in Java Applikation einzubinden.
Ziemlich sicher nicht. Bei offenen Formaten wie SVG könnte man sich noch Hoffnung machen, dass es vielleicht einer zum Spaß halbwegs standardkonform in Java implementiert hat, um damit Animationen wiederzugeben (wovon ich bisher nichts gehört habe...) aber bei Flash wäre es einfach ein unverhältnismäßig gigantischer und sinnloser Aufwand, diesen komischen proprietären swg-format auseinanderzunehmen und dafür einen player zu implementieren.
Außerdem wäre es doch eh ein verlorener Kampf von Anfang an, kein Mensch würde es schaffen blind gegen Adobe auf ihrem Kampfgelände anzukommen, das ist doch quatsch... Und wer braucht denn bitte irgendeinen teilweise funktionierenden swg-player in java, wenn es immer einen fertigen & top aktuellen bei adobe kostenlos gibt? Du wärst wohl ungefähr der erste ???:L
Es geht darum ein Spiel in Java Apllikation einzubauen.
und wieso sollte man so etwas denn machen? Ein spiel in Flash zu basteln und dann in java reinzuquetschen ist ungefähr genauso sinnvoll, wie einem Fisch eine Haartransplantation zu machen und das Bellen beizubringen, um ihn dann als Hund zu verkaufen ???:L
 
In eclipse ist bereits ein Browser enthalten, der Flash abspielen kann:
[HIGHLIGHT="Java"]import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class SWTBrowserExample {

private Shell shell = null;
private Browser browser = null;

private static final String url = "http://www.youtube.com";
private static final String title = "SWTBrowserExample";

public static void main(String[] args) {
Display display = new Display();
SWTBrowserExample browser = new SWTBrowserExample();
browser.createBrowser();
browser.shell.open();

while (!browser.shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}

private void createBrowser() {
shell = new Shell();
shell.setLayout(new FillLayout());
shell.setSize(new Point(800, 800));
shell.setLocation(new Point(100, 100));
shell.setText(title);

browser = new Browser(shell, SWT.BORDER);
browser.setUrl(url);
}

}[/HIGHLIGHT]
Das Ding basiert auf der SWT-Webkit-Engine.
Wenn es nur darum geht Flash bzw. Webseiten allgemein mit Java darzustellen, dann ist dieser Browser ziemlich genial. Wie der allerdings genau funktioniert kann ich dir nicht sagen.
 
Mit dem zweiten Teil hat Andrey recht, mit dem ersten Teil nicht so ganz: Mit The DJ project kann man theoretisch und prinzipiell Flash in Java einbinden.....
Nice Try... Bei solchen Sachen sehe ich aber irgendwie eher schwarz, da sind schon wesentlich sinnvollere Projekte nach einer Weile eingegangen ;(

Und letztendlich tut es ja auch nichts anedres, als irgendeinen browser aufzurufen, der den nativen flash-plugin aufruft der die swf abspielt... Was soll es mir bringen? Warum nimmt man nicht einfach Firefox... ???:L Naja, egal... kA.
 
Wenn es nur darum geht Flash bzw. Webseiten allgemein mit Java darzustellen, dann ist dieser Browser ziemlich genial. Wie der allerdings genau funktioniert kann ich dir nicht sagen.
Das ist so nicht richtig. Der SWT Browser embedded einen System Browser. Bei Windows ist das immer der IE, auf Linux Systemen wird es mit XUL Runner gelöst (also Mozilla), bei Mac Safari.
Flash kann also auch nur dann angezeigt werden, wenn du in diesem Browser ein Flash Plugin installiert hast.
 
Zuletzt bearbeitet:
[...] aber bei Flash wäre es einfach ein unverhältnismäßig gigantischer und sinnloser Aufwand, diesen komischen proprietären swg-format auseinanderzunehmen und dafür einen player zu implementieren.
Adobe hat Mai 2008 das Dateiformat der Flash-Files (swf) veröffentlicht 😉


also mir würde da spontan der JFlashPlayer wie gut der allerdings ist, und auf was er basiert, habe ich nicht die geringste Ahnung.
 
Von deren Seite:

call Java methods from Flash with ExternalInterface.call
call Flash functions from Java with ExternalInterface.addCallback
install Flash if it is not already present

daher würde ichd arauf wetten das der Letztendlich auch nur irgewie das Bwoser plugin aufruft (evtl diekt ohne browser, da bin ich net sicher).
 
ich habe mir mal das demojar angesehen, also es wird kein browser aufgerufen, scheinbar, die gehen wohl den JNI-Weg und sprechen wahrscheinlich direkt mit dem installierten Flash.

Das externalInterface ist ein Flash-Feature um mit einem Container ausserhalb von Flash zu sprechen, normalerweise macht man das um mit Js zu kommunizieren, mit Java zu kommunizieren ist nicht vorgesehen, also muss da wohl was eigenes entwickelt worden sein
 
Hallo Danke für den Tip. Habe das DJ Project heruntergeladen und mehr oder weniger erfolgreich in eclipse eingebunden. Folgendes habe ich gemacht: Die Jar Dateien DJNativeSwing-SWT.jar DJNativeSwing.jar als externe Jar Files in mein Projekt referenziert. Diese Jar Files sind gelichzeitig in meinem Projektordner. (Projekt->Properties->Java Build Path->Libaries->AddExternalJars)

Versuche das Beispiel mit dem JFlashPlayer: Habe keine Fehlermeldung, also die Klassen werdne schon erkannt!

Problem:
1.package chrriis.dj.nativeswing.swtimpl; wird im Intelli Sense erkannt aber er meckert mit :The declared package "chrriis.dj.nativeswing.swtimpl" does not match the expected package ""

2. Nach dem Kompilieren kommt eine Ausnahme:
Exception in thread "main" java.lang.IllegalStateException: The version of SWT that is required is 3.5M6 or later!
at chrriis.dj.nativeswing.swtimpl.NativeInterface.initialize(NativeInterface.java:149)
at chrriis.dj.nativeswing.swtimpl.NativeInterface.open(NativeInterface.java:182)
at SimpleFlashExample.main(SimpleFlashExample.java:36)

Ist die einbindung korrekt, was mache ich hier falsch das diese Sache nicht funktioniert. Hoffe, dass jemand damit schonmla gearbeitet hat und mir weiterhelfen kann!

Danke
 
Danke für die Vorschläge, jedoch würde ich gerne das DJ Projekt benutzen, da ich dies mehr oder weniger schon implementiert habe. Die Nativen pfade beim SWT ??? Was muss ich Tun 🙁???
 
Danke für die Tips!
Das Anzeigen hat nun nach langem ausprobieren geklappt 🙂

Hier eine kurze Beschreibung:
1. Die Jars DJNativeSwing und DJNativeSwing-SWT als externe Archive zum Projekt hinzufügen. Bei Eclipse: Rechte Maustate auf das Projekt -> Build Path -> Add External Archive
2. Die Datei swt-3.5M6-win32-win32-x86 von der Seite SWT: The Standard Widget Toolkit (Development) herunterladen und anschließend als zip in das Projekt "importieren". Rechte Maustaste auf das Projekt -> Importieren
3. Die DJNativeSwing-Demo.jar aufrufen, die sich im Ordner der Libary befindet und den JFlashPlayer anklicken, dessen Quellcode entnehmen und pfad anpassen.

So kann man eine swf Datei in einem Java Frame darstellen.

LG
 
Um das mal nebenbei zu erwähnen: Gut, dass du die Lösung jetzt noch gepostet hast :toll: sonst würden vermutlich andere durch die Suchfunktion diesen Thread finden, und dann enttäuscht feststellen, dass keine endgültige, einfache Lösung drinsteht...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben