Я работаю над приложением JavaFX, которое содержит несколько html, css, JS-файлов, которые отображаются внутренним браузером веб-браузера. Теперь проблема заключается в том, что анимации CSS, которые у нас есть, не получают гладко в браузере webkit, предоставляемом JavaFX, но тот же код в Firefox или хром довольно плавный.JavaFX: Внедрение браузера, отличного от доступного webview, с помощью JavaFX
Кроме того, нет возможности сохранения (в настоящее время используются переменные на Java и связь через JS для сохранения).
Что я ищу, есть какой-либо способ интегрировать некоторый браузер без браузера или некоторые настройки, чтобы сделать анимацию CSS более плавной. Единственное, что я натолкнулся на JxBrowser, но это toooooo дорогостоящий для личного использования.
Код:
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);
}
CSS код, который содержит анимацию:
#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;
}
Спасибо.
в код, который вы предоставили, не компилируется. Также отсутствует HTML-код. –
@OJKrylow: этот код только для справки, один из анимации у нас есть. Вы можете попробовать любую анимацию CSS из сети (мы сделали это уже), а производительность плохая. –
Я тестировал WebView с https://daneden.github.io/animate.css/ в режиме 64 бит и 32 бит. Нет анимации с анимацией. Помимо некоторых элементов, которые не отображаются правильно, анимация кажется прекрасной. –