Jump to content
Korean Random
aks1983

0.9.16 CT - проблемы с контролами GUI

Recommended Posts

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 by aks1983

Share this post


Link to post

Short link
Share on other sites

Спасибо, продвинулся, но проблема осталась.

Сейчас реализация такая -

    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, в этом случае не валится, но и контролов не видно (графика не загрузилась? или контролы не проинициализировались?)

 

Попробуем сделать для теста простейшее окно с кнопкой и дропдауном на странице логина?
 

Share this post


Link to post

Short link
Share on other sites

DropdownMenu

Там названия поменялись вроде. UI в конце где-то добавилось. Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Не, всё на месте: 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 by POLIROID
  • Upvote 2
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

клик либо клик

 

а еще

 

клик

 

 

 

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"));

 

Не подскажите, как создать группу радиобаттонов, с текстом? Типа таких:

9663e48e8c.jpg

Edited by Porc

Share this post


Link to post

Short link
Share on other sites

Не подскажите, как создать группу радиобаттонов, с текстом? Типа таких:

9663e48e8c.jpg

 

 

Там по идее все просто, вам понадобится 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 by POLIROID
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...