Похоже, вы используете не тот контейнер (группу) для того, что вы хотите достичь.
Как должны выглядеть четыре узла Canvas относительно кнопки «Пуск»? Вы можете использовать AnchorPane или VBox. Все зависит от того, как должен выглядеть общий макет.
Возможно, вы захотите создать основной макет с помощью SceneBuilder: https://gluonhq.com/products/scene-builder/
Также рассмотрите, что Group делает для макета. (не очень): https://github.com/javafxports/openjdk-jfx/blob/develop/modules/javafx.graphics/src/main/java/javafx/scene/Group.java [115 ]
Обычно вы не вызываете setLayoutX / Y, если вы не реализует layoutChildren в новом подклассе Parent.
Редактировать: чтобы сложить узлы Canvas, вы можете поместить их в StackPane, но я думаю, что я бы использовал AnchorPane, так как вы можете легко закрепить кнопку, которая будет смещена от нижнего края AnchorPane.
Javascript может помочь вам в обнаружении браузера и выяснении UserAgent. Используйте ExternalInterface, чтобы заставить Javascript взаимодействовать с вашим приложением flex. Вот учебник ExternalInterface .
you can 'embed' your javascript inside AS3 code like this :
var v : String = ExternalInterface.call("function(){return navigator.appVersion+'-'+navigator.appName;}");
var t : TextField = new TextField();
t.autoSize = TextFieldAutoSize.LEFT;
addChild(t);
t.text = v;
the textField will display infos about the navigator like this (chrome):
5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.53 Safari/525.19-Netscape
Ваш JavaScript:
function determineBrowser()
{
// do whatever browser checks you prefer here, then return
// a value (a string would probably work best) that will indicate
// to your flash what browser it is
// I'm just gonna copy and paste an extremely
// simple one for example purposes
if(navigator.appName == "Netscape")
{
return "Netscape";
}
if(navigator.appName == "Microsoft Internet Explorer")
{
return "Internet Explorer";
}
return "Not IE or Netscape";
}
Ваш Actionscript:
import flash.external.ExternalInterface;
var browser: String = ExternalInterface.call("determineBrowser");
Использование то, что я сделал, независимо от того, что возвращает ваша функция javascript, это переменная браузера в actionscript, так что вы можете получать любые данные браузера, если вам нужно, чтобы javascript определял их.
Я рекомендую сделать его немного более надежным, чем Да, но я просто хотел дать вам основную идею в достаточно короткие сроки, чтобы ее было легко переварить!