aks1983 19 Posted September 30, 2016 (edited) W G что-то сделал с флешом. Теперь не создаются контролы: import net.wg.gui.components.controls.SoundButton; ... var btnZero:SoundButton = App.utils.classFactory.getComponent( "net.wg.gui.components.controls::SoundButton", SoundButton, {label: "0:0", x: 150, y: 43, width: 27, height: 23} ); btnZero.addEventListener(ButtonEvent.CLICK, handleZeroButtonPress); addChild(btnZero); Есть какие-нибудь идеи? UPD: так же не работают такие конструкции: var b:SoundButton = new SoundButton(); b.label = 'test'; b.x = 10; b.y = 10; b.width = 27; b.height= 23; addChild(b); b.validateNow(); var b2:Button = new Button(); b2.textField = new TextField(); b2.textField.text = 'test1'; b2.label = 'test2'; b2.x = 100; b2.y = 10; b2.width = 27; b2.height= 23; addChild(b2); b2.validateNow(); Edited September 30, 2016 by aks1983 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #355607 Posted September 30, 2016 Есть какие-нибудь идеи? http://www.koreanrandom.com/forum/topic/25477-/?p=355101 Quote Share this post Link to post Short link Share on other sites
aks1983 19 #355633 Posted September 30, 2016 Спасибо, продвинулся, но проблема осталась. Сейчас реализация такая - private var _librariesLoaded:Boolean = false; private var _controlPopulated:Boolean = false; //в конструкторе: App.instance.loaderMgr.addEventListener(LibraryLoaderEvent.LOADED, this.onLoaderMangerLoadedHandler); App.instance.loaderMgr.loadLibraries(Vector.<String>([ "guiControlsLobby.swf", "guiControlsLobbyBattle.swf", "guiControlsLobbyBattleDynamic.swf", "guiControlsLobbyDynamic.swf", "guiControlsLogin.swf", "guiControlsLoginBattle.swf", "guiControlsLoginBattleDynamic.swf" ])); // и далее: protected override function onPopulate():void { _controlPopulated = true; super.onPopulate(); initControls(); } private function onLoaderMangerLoadedHandler(e:LibraryLoaderEvent):void { // ловим загрузку последней либы из списка if (e.url.indexOf("guiControlsLoginBattleDynamic.swf") >= 0) { App.instance.loaderMgr.removeEventListener(LibraryLoaderEvent.LOADED, onLoaderMangerLoadedHandler); _librariesLoaded = true; initControls(); } } private function initControls():void { DebugUtils.LOG_ERROR('!!!STATUS!!!', _librariesLoaded + " : " + _controlPopulated); // учитываем, что загрузка либ асинхронна (!!!): if (_librariesLoaded && _controlPopulated) { try { // тут создаёся спрайт с контролами net.wg.gui.components.controls... _panel = new MySuperPanel(this); addChild(_panel); } catch (e:Error) { DebugUtils.LOG_ERROR('!!!ERROR!!!', e); } DebugUtils.LOG_ERROR('!!!DONE!!!'); } } Всё равно валится по 'Error extracting object with linkage: DropdownMenu'. Ж*па... Раньше (еще до решения с загрузкой либ) я указывал имя класса по полному имени - например net.wg.gui.components.controls::DropdownMenu, в этом случае не валится, но и контролов не видно (графика не загрузилась? или контролы не проинициализировались?) Попробуем сделать для теста простейшее окно с кнопкой и дропдауном на странице логина? Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #355635 Posted September 30, 2016 (edited) DropdownMenuТам названия поменялись вроде. UI в конце где-то добавилось. Edited September 30, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
aks1983 19 #355637 Posted September 30, 2016 Там названия поменялись вроде. UI в конце где-то добавилось. Не, всё на месте: http://take.ms/OBJAx Quote Share this post Link to post Short link Share on other sites
POLIROID 210 #355663 Posted October 1, 2016 (edited) Не, всё на месте: http://take.ms/OBJAx клик либо клик а еще Попробуем сделать для теста простейшее окно с кнопкой и дропдауном на странице логина? клик import net.wg.gui.components.controls.SoundButtonEx; import net.wg.gui.components.controls.DropdownMenu; ... // dropdown (ui linkage => DropdownMenuUI) var dropdown:DropdownMenu = App.utils.classFactory.getComponent("DropdownMenuUI", DropdownMenu, {...}); //or var dropdown:DropdownMenu = DropdownMenu(App.utils.classFactory.getObject("DropdownMenuUI")); // button (ui linkages => ButtonNormal or ButtonBlack) var button:SoundButtonEx = App.utils.classFactory.getComponent("ButtonNormal", SoundButtonEx, {...}); //or var button:SoundButtonEx = SoundButtonEx(App.utils.classFactory.getObject("ButtonNormal")); Edited October 1, 2016 by POLIROID 2 1 Quote Share this post Link to post Short link Share on other sites
Porc 18 #362903 Posted October 29, 2016 (edited) клик либо клик а еще клик import net.wg.gui.components.controls.SoundButtonEx; import net.wg.gui.components.controls.DropdownMenu; ... // dropdown (ui linkage => DropdownMenuUI) var dropdown:DropdownMenu = App.utils.classFactory.getComponent("DropdownMenuUI", DropdownMenu, {...}); //or var dropdown:DropdownMenu = DropdownMenu(App.utils.classFactory.getObject("DropdownMenuUI")); // button (ui linkages => ButtonNormal or ButtonBlack) var button:SoundButtonEx = App.utils.classFactory.getComponent("ButtonNormal", SoundButtonEx, {...}); //or var button:SoundButtonEx = SoundButtonEx(App.utils.classFactory.getObject("ButtonNormal")); Не подскажите, как создать группу радиобаттонов, с текстом? Типа таких: Edited October 29, 2016 by Porc Quote Share this post Link to post Short link Share on other sites
POLIROID 210 #362940 Posted October 29, 2016 (edited) Не подскажите, как создать группу радиобаттонов, с текстом? Типа таких: Там по идее все просто, вам понадобится ButtonGroup и RadioButton. Пример под катом после внедрения и правок под ваш код, по идее должен работать. *правда он без обрамления с заголовком (FieldSet) import flash.events.MouseEvent; import scaleform.clik.controls.ButtonGroup; import scaleform.clik.core.UIComponent; import net.wg.gui.components.controls.RadioButton; var buttons:Array = ["text1", "text2", "text3", "text4"]; var selectedIndex:Number = 2; var radioButtonsUI:UIComponent = new UIComponent(); var buttonGroup:ButtonGroup = ButtonGroup.getGroup("your_group_name", radioButtonsUI); for (var i:Number = 0; i < buttons.length; i++) { var radioButton:RadioButton = RadioButton(App.utils.classFactory.getComponent("RadioButton", RadioButton)); radioButton.x = i * 120; radioButton.label = buttons[i]; radioButtonsUI.addChild(radioButton); buttonGroup.addButton(radioButton); radioButton.addEventListener(MouseEvent.CLICK, handleButtonGroup); } buttonGroup.setSelectedButtonByIndex(selectedIndex); addChild(radioButtonsUI); Edited October 29, 2016 by POLIROID 1 Quote Share this post Link to post Short link Share on other sites