Par exemple, le code suivant ouvrirait le fichier avec votre éditeur ActionScript favori.

Java
Desktop.open("UneClasse.as");

Mais ce qui m'a le plus intéresser, c'est le fait de pouvoir intégrer un vrai navigateur dans un JFrame. Qu'est-ce qu'il y a habituellement dans un vrai navigateur ? Un plug-in flash ! 8)

J'ai donc fait une petite application en vitesse pour tester ça. Comme d'habitude, j'ai fait un exemple qui ne sert à rien... :mrgreen:

Il s'agit d'un SWF avec un menu contextuel permettant de coller le contenu du Clipoard dans le SWF (si c'est une image). La communication se fait via un petit serveur socket maison que j'avait déjà fait pour les petits tests rapides. ;)

Je n'ai pas encore fait d'installateur mais voici quelques screenshots.

Voici le code Java :

Java
import com.liguo.server.*;
import com.liguo.utils.*;

import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.imageio.*;
import java.awt.image.*;
import org.jdesktop.jdic.browser.*;

public class Main {

public static void main(String[] args) {      

try{
//Création de l'interface graphique
JFrame frame = new JFrame("Une application flash dans un JFrame");

File f = new File("swf/main.html");
URL url = new URL("file://" + f.getAbsolutePath());

WebBrowser browser = new WebBrowser();
browser.setURL(url);


frame.add(browser);
frame.setSize(800,600);
frame.setVisible(true);

}catch(Exception ex){
ex.printStackTrace();
}


//Démarage du serveur pour la communication entre le Flash et le Java
RequestProcessor p = new RequestProcessorImpl(){

public String processRequest(String request){

if("getClipboard".equals(request)){

try{

BufferedImage img = Clipboard.getClipboard();

File file = new File("E:/temp.jpeg");

ImageIO.write(img ,"JPEG", file);

}catch(IOException ex){
request = "null";
}
}
return request;
}
};

LiguoServer server = new LiguoServer();
server.setRequestProcessor(p);
server.startServer(12000);  
}    
}


Et dans le flash :


AS2
var root:MovieClip = this;

function pasteImage(){
var d = root.getNextHighestDepth();
var mc = root.createEmptyMovieClip("d"+d,d);
mc._x = root._xmouse;
mc._y = root._ymouse;
mc.loadMovie("file://E:/temp.jpeg");
}

var socket:XMLSocket = new XMLSocket();

socket.onData = function(data){
if(data == "getClipboard") pasteImage();
}

socket.connect("localhost",12000);

var menu:ContextMenu = new ContextMenu();

menu.hideBuiltInItems();
menu.customItems.push(new ContextMenuItem("Paste Image Clipboard", function(){
socket.send("getClipboard");
}));


Si le développement continu au rythme prévu, JDIC devrait être intégré à la version finale de Mustang.