Jump to content
Korean Random

Как создать форму(Окно) в ангаре


Recommended Posts

А почему ошибка?

ERROR: [ERROR] (scripts/client/gui/Scaleform/framework/managers/loaders.py, 133): View 'TestWindow' does not implement net.wg.infrastructure.interfaces.IView

 

Через PjOrion все нормально работает.

P.S. Форум пора серьезно обновить.

Edited by ShadowHunterRUS
Link to comment
Short link
Share on other sites

а как настройку текста, кнопок, названия окна вывести в отдельный файл

mod_TestWindow.py изменим

def __init__(self):
    super(TestWindow, self).__init__()
    self.__config_section = ResMgr.openSection('../configs/config.xml')
и добавим метод

def py_getCustomConfig(self):
    return {
        'title': self.__config_section.readString('title'),
        'width': self.__config_section.readInt('width'),
        'height': self.__config_section.readInt('height')
    }
В TestWindow.as добавим

public var py_getCustomConfig : Function;
И изменим:

override protected function onPopulate() : void
{
    super.onPopulate();
    var _config : Object = py_getCustomConfig();
    width = _config.width;
    height = _config.height;
    window.title = _config.title;
}
Теперь проверим как это работает:

Создадим в папке res_mods/configs файл config.xml (кодировка UTF-8 (без BOM))

Содержимое файла:

<root>
    <title>Test Window</title>
    <width>600</width>
    <height>400</height>
</root>
Edited by ShadowHunterRUS
  • Upvote 5
Link to comment
Short link
Share on other sites

Гайды о чем?

Например, мне вот не понятно стало как вызывать питоновские функции из формы с передачей параметров? И наоборот, как вызывать AS-функции из питона? И как в эти функции передавать параметры?

 

Как вызывать такие окошки в бою?

Edited by IzeBerg
Link to comment
Short link
Share on other sites

Например, мне вот не понятно стало как вызывать питоновские функции из формы с передачей параметров? И наоборот, как вызывать AS-функции из питона? И как в эти функции передавать параметры?

 

Как вызывать такие окошки в бою?

Окошки в бою скорей всего вызывать нельзя, только текстовые сообщения.

Link to comment
Short link
Share on other sites

Окошки в бою скорей всего вызывать нельзя, только текстовые сообщения.

Еще как можно. Есть же мод, который в конце реплея показывает результат боя.

Link to comment
Short link
Share on other sites

Например, мне вот не понятно стало как вызывать питоновские функции из формы с передачей параметров?

Добавляем к классу TestWindow в файле TestWindow.py метод testFunc:

def testFunc(self, param1, param2, param3):
   print 'param1={};param2={};param3={};'.format(param1, param2, param3)
В TestWindow.as добавим:

public var testFunc:Function = null;
Теперь в каком-нибудь месте флеш-программы выполним:

this.testFunc("ololo", "alalla", true);
И в PjOrion'е увидим следующее:

param1=ololo;param2=alalla;param3=True;
Edited by ShadowHunterRUS
  • Upvote 2
Link to comment
Short link
Share on other sites

а можно еще чекбоксы сделать?

Добавим к импорту:

import net.wg.gui.components.controls.CheckBox;
Добавим к переменным:

private var testCheckBox:CheckBox;
Добавим к onPopulate():

testCheckBox = addChild(App.utils.classFactory.getComponent("CheckBox", CheckBox, {
    x: 10,
    y: 10,
    label: "Test checkBox"
})) as CheckBox;
post-16296-0-96524700-1435756481_thumb.jpg

Может пригодится...

post-16296-0-39867600-1435756567_thumb.jpg

post-16296-0-56262200-1435928291_thumb.jpg

Edited by ShadowHunterRUS
  • Upvote 2
Link to comment
Short link
Share on other sites

или тему создайте

Я борюсь с глюками KoreanRandom'а, печатая вам сообщение. На еще одну тему терпения у меня не хватит!

Не расскажите подобрее?

http://www.youtube.com/watch?v=f4mPGU6jcII&feature=player_detailpage&list=PL-xJsR8lBCvhw1JU1TD1AxEuEweag7krc#t=704

Пример работы данного мода. Смотри c 11:11

Окно в бою. Там идет привязка к какому-либо flash-элементу. Например к миникарте. Далее идут костыли.

Т.к. бой написан на AS2 , то без костылей написать окно в бою невозможно.

Тактический планшет, к примеру, был написан внутри swf-файла курсора.

Edited by ShadowHunterRUS
Link to comment
Short link
Share on other sites

И наоборот, как вызывать AS-функции из питона? И как в эти функции передавать параметры?

Добавляем к классу TestWindow в файле TestWindow.py метод

def py_log(self, msg):
    print msg
В классе TestWindow в mod_TestWindow.py изменим

def _populate(self):
    super(TestWindow, self)._populate()
    self.flashObject.as_setText('Hello')
В TestWindow.as добавим:

public var py_log : Function;

public function as_setText(param : String):void
{
    py_log(param);
}
В PjOrion'е увидим - Hello
Edited by ShadowHunterRUS
Link to comment
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...