Sto lavorando a un'applicazione JavaFX che contiene alcuni file html, css, JS che sono resi dal browser webkit interno. Ora, il problema sono le animazioni CSS che non vengono visualizzate correttamente nel browser webkit fornito da JavaFX, ma lo stesso codice in Firefox o Chrome è piuttosto uniforme.JavaFX: Incorporamento di un browser diverso dalla visualizzazione Web disponibile con JavaFX
Inoltre, non è disponibile la persistenza (le variabili attualmente in uso in Java e la comunicazione tramite JS per la persistenza).
Quello che sto cercando è un modo per integrare un browser senza testa o alcune impostazioni per rendere più fluide le animazioni CSS. L'unica cosa che ho trovato era JxBrowser, ma è toooooo costoso per uso personale.
Codice:
public class Main extends Application {
private Scene scene;
MyBrowser myBrowser;
String completeText = "";
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("Frontend");
java.net.CookieManager manager = new java.net.CookieManager();
java.net.CookieHandler.setDefault(manager);
myBrowser = new MyBrowser();
scene = new Scene(myBrowser, 1080, 1920);
primaryStage.setScene(scene);
primaryStage.setFullScreen(true);
primaryStage.show();
// @ being the escape character
scene.setOnKeyTyped(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
String text = event.getCharacter();
if (text.equals("0")) {
String tempText = completeText;
completeText = "";
processText(tempText);
}else {
completeText = completeText+text;
}
}
});
}
}
MyBrowser:
public class MyBrowser extends Region {
public MyBrowser() {
webEngine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> {
if (newValue == Worker.State.SUCCEEDED) {
JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("app", this);
}
});
URL urlHello = getClass().getResource(hellohtml);
webEngine.load(urlHello.toExternalForm());
webView.setPrefSize(1080, 1920);
webView.setContextMenuEnabled(false);
getChildren().add(webView);
}
codice CSS che contiene l'animazione:
#ball-container.go #ball{
-webkit-animation: rotating-inverse 2s ease-out 0s 1 normal;
animation: rotating-inverse 2s ease-out 0s 1 normal;
}
#ball-container {
height: 102px;
width: 102px;
position: absolute;
top: -95px;
left: 480px;
-webkit-transition: all 0.9s ease-in-out 0s;
transition: all 0.9s ease-in-out 0s;
}
#ball-container.shake .ball-wrapper{
-webkit-animation: yAxis 0.9s ease-in-out;
animation: yAxis 0.9s ease-in-out;
}
Grazie.
il il codice che hai fornito non viene compilato. Anche l'HTML è mancante. –
@OJKrylow: questo codice è solo per riferimento, una delle animazioni che abbiamo. Puoi provare qualsiasi animazione CSS dalla rete (lo abbiamo già fatto) e le prestazioni sono scadenti. –
Ho testato la WebView con https://daneden.github.io/animate.css/ in modalità 64 bit e 32 bit. Non c'è jank notevole con le animazioni. A parte il fatto che alcuni elementi non vengono visualizzati correttamente, l'animazione sembra soddisfacente. –