SV_Kirov
-
Content Count
33 -
Joined
-
Last visited
Posts posted by SV_Kirov
-
-
Нашёл где я видел 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
-
Поройся в той же теме, там где то это было
-
Не то, я про сообщение на подобии о приглошение во взвод.
Смотри внимательнее
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
-
-
Впринципе можешь вывести форму без проблем.
-
Рабочий мод под 0.9.9 есть?
-
вот еще один вариант:
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 это хорошо, не думал что его можно заюзать.
-
Читай выше мой пост. Вроде тег <table></table> работает
-
как вариант можно попробовать html тегами, например табличку заюзать
<table> <tr> <td>Name</td> <td>id</td> </tr> <tr> <td>Name2</td> <td>id2</td> </tr> </table>
как то так
-
Все отображает спасибо
Только
text = urlopen('Hello World').read()
заменил на
return self.flashObject.as_setText('<font color="#FFFFFF">Hello World</font>')
Точно, второй раз на одни и теже грабли. Думаю и исходнике было всё норм
-
'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
- 1
-
Хы, понял где косяку меня было так:
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); }
-
Вот по этому я и не могу вкурить
-
Теперь ошибки тут
*** 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
-
Все ясно! У меня такая же ошибка была.
Нужно после _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
-
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
*** 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.
-
Добавляем к классу 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
-
Так лето же , море, пляж , пиво , девчёнки - вот это общение , на форум осенью вернёмся !;)
цитата St1m`a
-
Не могу найти компонент похожий на GroupBox или что то подобия Panel с заголовком.
-
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)
shot_177.jpgА я себе голову ломаю как открыть ссылку. Спасибо.
-
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
Переделай под себя
-
Например, мне вот не понятно стало как вызывать питоновские функции из формы с передачей параметров? И наоборот, как вызывать AS-функции из питона? И как в эти функции передавать параметры?
Как вызывать такие окошки в бою?
Окошки в бою скорей всего вызывать нельзя, только текстовые сообщения.
-
Т.е. я могу забацать html справочку в пару страничек скажем для своего мода/сборки и локально их в окне грузануть как выше?
По сути без проблем. Тоже в данный момент копаю в эту сторону.
-
Если что-то ещё нужно - обращайся
Хорошо
создать сообщение в центре уведомлений
in ActionScript & Python
Posted
посмотри ту тему