Jump to content
Korean Random

SV_Kirov

User
  • Content Count

    33
  • Joined

  • Last visited

Posts posted by SV_Kirov


  1. Нашёл где я видел http://www.koreanrandom.com/forum/topic/25584-как-создать-сообщение-с-кнопками-в-центре-уведо/?p=280614 

    На второй странице этого раздела


    смотрел, нету

    from notification.NotificationListView import NotificationListView
    
    old_populate = NotificationListView._populate
    
    def new_populate(self):
        message = {
            'typeID': 1,
            'message': {
                'bgIcon': '',
                'defaultIcon': '',
                'savedData': 0,
                'timestamp': -1,
                'filters': [],
                'buttonsLayout': [
                    {
                        'action': 'action_1',
                        'type': 'submit',
                        'label': 'Button 1'
                    },
                    {
                        'action': 'action_2',
                        'type': 'submit',
                        'label': 'Button 2'
                    }
                ],
                'message': 'Test Message',
                'type': 'black',
                'icon': '',
            },
            'entityID': 99999,
            'auxData': ['GameGreeting']
        }
        old_populate(self)
        self.as_appendMessageS(message)
    
    NotificationListView._populate = new_populate
    
    old_onClickAction = NotificationListView.onClickAction
    
    def new_onClickAction(self, typeID, entityID, action):
        if action == 'action_1':
            print 'action_1'
        elif action == 'action_2':
            print 'action_2'
        else:
            old_onClickAction(self, typeID, entityID, action)
    
    NotificationListView.onClickAction = new_onClickAction
    

    post-16296-0-01552700-1436028945.jpg


  2. Не то, я про сообщение на подобии о приглошение во взвод.

    Смотри внимательнее

     

    post-16296-0-89615100-1435600499_thumb.j

    from gui.Scaleform.daapi.view.dialogs import SimpleDialogMeta, DIALOG_BUTTON_ID
    from gui.shared.utils.key_mapping import getBigworldNameFromKey
    from gui import DialogsInterface
    from gui import InputHandler
    
    class MyConfirmDialogButtons():
        def getLabels(self):
            return [{'id': DIALOG_BUTTON_ID.SUBMIT,'label': 'Ok','focused': True}, \
            {'id': DIALOG_BUTTON_ID.CLOSE,'label': 'Cancel','focused': False}]
    
    def openTestDialog():
        _message = 'Test Message'
        _title = 'Test Title'
        _buttons = MyConfirmDialogButtons()
        meta = SimpleDialogMeta(message=_message, title=_title, buttons=_buttons)
        DialogsInterface.showDialog(meta, lambda result: onClickAction(result))
    
    def onClickAction(result):
        if result:
            print 'PRESS OK'
        else
            print 'PRESS CANCEL'
    
    def onhandleKeyEvent(event):
        key = getBigworldNameFromKey(event.key)
        if key == 'KEY_F11':
            openTestDialog()
        return None
    
    InputHandler.g_instance.onKeyDown += onhandleKeyEvent
    

  3. вот еще один вариант:

    def test_print()
        str1 = "<table>"
        for i in rsp.get('data'):
            str1 += "<tr><td>Nickname: %s</td><td>Id: %s</td></tr>\n" % (i.get('nickname'), i.get('account_id'))
        return str1+"</table>"
    Но лучший вариант - использовать CSS!

    Утром напишу как это сделать.

     

    css это хорошо, не думал что его можно заюзать.


  4. 'TestWindows.as'

    package
    {
    import flash.events.*;
    import flash.display.*;
    import scaleform.clik.core.UIComponent;
    import net.wg.infrastructure.base.AbstractWindowView;
    import net.wg.gui.components.controls.ResizableScrollPane;
    import net.wg.gui.components.controls.ScrollPane;
    import net.wg.gui.components.controls.SoundButton;
    import flash.text.TextField;
    import net.wg.gui.components.advanced.ContentTabBar;
    import scaleform.clik.core.UIComponent;
    
    public class TestWindow extends AbstractWindowView
    {
    
    public var textFieldTest:TextField;
    public var testScrollPane:ScrollPane;
    public var ContentTab:ContentTabBar;
    
    
    public var startF:Function;
    public function as_setText(param:String):void
    {
    this.textFieldTest.htmlText = param;
    }
    
    public function TestWindow()
    {
    super();
    }
    
    override protected function configUI() : void
    {
    super.configUI();
    this.textFieldTest = new TextField();
    this.textFieldTest.width = 500;
    this.textFieldTest.height = 550;
    this.textFieldTest.x = 5;
    this.textFieldTest.y = 0;
    this.textFieldTest.multiline = true;
    this.textFieldTest.selectable = false;
    this.startF();
    this.addChild(this.textFieldTest);
    this.textFieldTest.addEventListener(MouseEvent.CLICK, this.ontextFieldTest);
    
    
    }
    
    
    override protected function onPopulate() : void
    {
    super.onPopulate();
    this.width = 600;
    this.height = 400;
    this.window.title = "Test Window";
    }
    override protected function onDispose() : void
    {
    super.onDispose();
    }
    
    
    
    private function ontextFieldTest(event:MouseEvent) : void
    {
    
    }
    
    
    }
    }

     

    'TestWindows.ry'

    from gui.Scaleform.framework import g_entitiesFactories, ViewSettings
    from gui.Scaleform.framework import ViewTypes, ScopeTemplates
    from gui.Scaleform.daapi.view.meta.WindowViewMeta import *
    from gui.Scaleform.daapi import LobbySubView
    from gui.WindowsManager import g_windowsManager
    from gui.shared.utils.key_mapping import getBigworldNameFromKey
    from gui.Scaleform.framework.entities.View import View
    
    
    
    class TestWindow(LobbySubView, WindowViewMeta):
        
    
        def __init__(self):
            View.__init__(self)
    
        def _populate(self):
            View._populate(self)
    
    
        def as_setTextS(self):
            if self._isDAAPIInited():
                text = urlopen('Hello World').read()
    
        def onWindowClose(self):
            self.destroy()
    
        def onTryClosing(self):
            return True
    
        def startF(self):
            self.as_setTextS()  
    
    
    _alias = 'TestWindow'
    _url = 'TestWindow.swf'
    _type = ViewTypes.WINDOW
    _event = None
    _scope = ScopeTemplates.DEFAULT_SCOPE
    
    
    _settings = ViewSettings(_alias, TestWindow, _url, _type, _event, _scope)
    g_entitiesFactories.addSettings(_settings)
    
    
    def onhandleKeyEvent(event):
        key = getBigworldNameFromKey(event.key)
        if key == 'KEY_F10':
            g_windowsManager.window.loadView('TestWindow', 'TestWindow')
        return None
    
    from gui import InputHandler
    InputHandler.g_instance.onKeyDown += onhandleKeyEvent
    


    Mr.Deno, У тебя где то косяк в swf

    • Upvote 1

  5. Хы, понял где косяку меня было так:

          public var startF:Function;
          public function as_setText(param:String):void
          {
           this.textFieldTest.htmlText = param;
          }
    	  
          public function TestWindow()
          {
             super();
          }	  
    	  
          override protected function configUI() : void
          {
             super.configUI();
    		 
    		 
    		 
             this.startF();
    
             this.textFieldTest = new TextField();
             this.textFieldTest.width = 590;
             this.textFieldTest.height = 360;
             this.textFieldTest.x = 5;
             this.textFieldTest.y = 0;
             this.textFieldTest.multiline = true;
             this.textFieldTest.selectable = false;
             
    	 this.textFieldTest.addEventListener(MouseEvent.CLICK, this.ontextFieldTest, false, 0, true);
             this.addChild(this.textFieldTest);
    		 
    		 
    		 
             }
    

  6. Теперь ошибки тут

     

     

    *** Traceback (most recent call last):
    ***   File "testWindow", line 28, in startF
    ***   File "testWindow", line 19, in as_setTextS
    *** Exception: PyGFxValue - Failed to invoke method as_setText.
    from gui.Scaleform.daapi import LobbySubView
    from gui.WindowsManager import g_windowsManager
    from gui.shared.utils.key_mapping import getBigworldNameFromKey
    from gui.Scaleform.framework.entities.View import View
    
    class TestWindow(LobbySubView, WindowViewMeta):
    
        def __init__(self):
            View.__init__(self)
    
        def _populate(self):
            View._populate(self)
    
        def as_setTextS(self):
            if self._isDAAPIInited():
                return self.flashObject.as_setText('<font color="#FFFFFF">Hello World!</font>')
    
        def onWindowClose(self):
            self.destroy()
    
        def onTryClosing(self):
            return True
    
        def startF(self):
            self.as_setTextS()
    
    
    _alias = 'TestWindow'
    _url = 'TestWindow.swf'
    _type = ViewTypes.WINDOW
    _event = None
    _scope = ScopeTemplates.DEFAULT_SCOPE
    
    
    _settings = ViewSettings(_alias, TestWindow, _url, _type, _event, _scope)
    g_entitiesFactories.addSettings(_settings)
    
    def onhandleKeyEvent(event):
        key = getBigworldNameFromKey(event.key)
        if key == 'KEY_F10':
            g_windowsManager.window.loadView('TestWindow', 'TestWindow')
        return None
    
    from gui import InputHandler
    InputHandler.g_instance.onKeyDown += onhandleKeyEvent
    

  7. Все ясно! У меня такая же ошибка была.

    Нужно после _populate вызвать as_setText

    То есть должно получиться:

        def __init__(self):
            View.__init__(self)
     
        def _populate(self):
            View._populate(self)
            self.as_setTextS()
    
        def as_setTextS(self):
            if self._isDAAPIInited():
               return self.flashObject.as_setText('Hello World!')
     
        def onWindowClose(self):
            self.destroy()
     
        def onTryClosing(self):
            return True
     
        def testF(self, param1):
            print param1
     
     
    

  8. public function as_setText(param:String):void {
        this.textFieldTest.htmlText = param;
    }

    Хм.. вчера так и пытался вывести но почему то вывел пустату заместо "Hello World!"

          override protected function configUI() : void
          {
             super.configUI();
    		 
             this.textFieldTest = new TextField();
             this.textFieldTest.width = 590;
             this.textFieldTest.height = 360;
             this.textFieldTest.x = 5;
             this.textFieldTest.y = 0;
             this.textFieldTest.multiline = true;
             this.textFieldTest.selectable = false;
             
    		 this.textFieldTest.addEventListener(MouseEvent.CLICK, this.ontextFieldTest, false, 0, true);
             this.addChild(this.textFieldTest);
    		 
    			
          }
    	  
    	  public var testF:Function = null;
    	  public function as_setText(param:String):void
          {
           this.textFieldTest.htmlText = param;
          }
    	  
          public function TestWindow()
          {
             super();
          }	  
     
    from gui.Scaleform.framework import g_entitiesFactories, ViewSettings
    from gui.Scaleform.framework import ViewTypes, ScopeTemplates
    from gui.Scaleform.daapi.view.meta.WindowViewMeta import *
    from gui.Scaleform.daapi import LobbySubView
    from gui.WindowsManager import g_windowsManager
    from gui.shared.utils.key_mapping import getBigworldNameFromKey
    from gui.Scaleform.framework.entities.View import View
    
    class TestWindow(LobbySubView, WindowViewMeta):
    
        def __init__(self):
            View.__init__(self)
    
        def _populate(self):
            View._populate(self)
            self.as_setTextS()
    
        def onWindowClose(self):
            self.destroy()
    
        def onTryClosing(self):
            return True
    
        def testF(self, param1):
            print param1
    
        def as_setTextS(self):
            if self._isDAAPIInited():
               return self.flashObject.as_setText('Hello World!')
    
    
    
    _alias = 'TestWindow'
    _url = 'TestWindow.swf'
    _type = ViewTypes.WINDOW
    _event = None
    _scope = ScopeTemplates.DEFAULT_SCOPE
    
    
    _settings = ViewSettings(_alias, TestWindow, _url, _type, _event, _scope)
    g_entitiesFactories.addSettings(_settings)
    
    def onhandleKeyEvent(event):
        key = getBigworldNameFromKey(event.key)
        if key == 'KEY_F10':
            g_windowsManager.window.loadView('TestWindow', 'TestWindow')
    
        return None
    
    from gui import InputHandler
    InputHandler.g_instance.onKeyDown += onhandleKeyEvent
     

     

     

    *** EXCEPTION(scripts/common/Event.py, 34):

    *** Traceback (most recent call last):

    ***   File "scripts/common/Event.py", line 32, in __call__

    ***   File "scripts/client/gui/Scaleform/framework/managers/containers.py", line 509, in __loader_onViewLoaded

    ***   File "scripts/client/gui/Scaleform/framework/entities/DisposableEntity.py", line 17, in create

    ***   File "testWindow", line 16, in _populate

    ***   File "testWindow", line 29, in as_setTextS

    *** Exception: PyGFxValue - Failed to invoke method as_setText.


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

    def testF(self, param1):
       print param1
    
    def as_setTextS(self):
       if self._isDAAPIInited():
          return self.flashObject.as_setText('Hello')

    В классе TestWindow в TestWindow.py изменим

    def _populate(self):
       View._populate(self)
       self.as_setTextS()

    В TestWindow.as добавим:

    public var testF:Function = null;
    public function as_setText(param:String):void
    {
       this.testF(param);
    }

    В PjOrion'е увидим - Hello

     

    Не пойму как вывести текст в TextField


  10. public var openURL:Function = null;
    public function handleLinkClick(url_link:TextEvent) : void
    {
       this.openURL(url_link.text);
    }
    
    this.textFieldTest.htmlText = "<a href=\"event:http://worldoftanks.com/\"><font color=\"#FFFFFF\"><u>TANKS</u></font></a>";
    this.textFieldTest.addEventListener(TextEvent.LINK, this.handleLinkClick);
    
    В файле TestWindow.py добавим import BigWorld

    Также к классу TestWindow добавим метод

    def openURL(self, url):
        BigWorld.wg_openWebBrowser(url)
    attachicon.gifshot_177.jpg

     

    А я себе голову ломаю как открыть ссылку. Спасибо.


  11. import BigWorld
    from urllib import urlopen
    from Account import Account
    from gui import SystemMessages
    
    def New_onBecomePlayer(self):
        global Show
        Old_onBecomePlayer(self)
        if not Show:
            Show = True
            SystemMessages.pushMessage(urlopen('http://net2ftp.ru/node0/[email protected]/Spam_message.xml').read(), type=SystemMessages.SM_TYPE.GameGreeting)
    
    
    Show = False
    Old_onBecomePlayer = Account.onBecomePlayer
    Account.onBecomePlayer = New_onBecomePlayer
    

    Переделай под себя


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

     

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

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

×
×
  • Create New...