Ekspoint 2,122 Posted August 17, 2016 from gui.Scaleform.genConsts.BATTLE_VIEW_ALIASES import BATTLE_VIEW_ALIASES from gui.shared import events, g_eventBus, EVENT_BUS_SCOPE from gui.Scaleform.framework import ViewTypes def onComponentRegistered(event): if event.alias == BATTLE_VIEW_ALIASES.DAMAGE_PANEL: event.componentPy.flashObject ? g_eventBus.addListener(events.ComponentEvent.COMPONENT_REGISTERED, onComponentRegistered, scope=EVENT_BUS_SCOPE.DEFAULT) как узнать какие есть компоненты у flashObject? Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #347782 Posted August 17, 2016 как узнать какие есть компоненты у flashObject?print dir(event.componentPy.flashObject) не работает? 1 Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #347792 Posted August 17, 2016 print dir(event.componentPy.flashObject) не работает? спс from gui.Scaleform.genConsts.BATTLE_VIEW_ALIASES import BATTLE_VIEW_ALIASES from gui.shared import events, g_eventBus, EVENT_BUS_SCOPE from gui.Scaleform.framework import ViewTypes def onComponentRegistered(event): if event.alias == BATTLE_VIEW_ALIASES.DAMAGE_PANEL: event.componentPy.flashObject.x = 100 event.componentPy.flashObject.y = 100 g_eventBus.addListener(events.ComponentEvent.COMPONENT_REGISTERED, onComponentRegistered, scope=EVENT_BUS_SCOPE.DEFAULT) что то не меняется позиция панели Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #347805 Posted August 17, 2016 (edited) что то не меняется позиция панелиПозиция устанавливается в самой флешке чуть позже, чем инициализирутся компонент в питоне. Edited August 17, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #347808 Posted August 17, 2016 (edited) Позиция устанавливается в самой флешке чуть позже, чем инициализирутся компонент в питоне. а если я сделаю после инцилизации гуи (PlayerAvatar._PlayerAvatar__startGUI) Edited August 17, 2016 by Ekspoint Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #347811 Posted August 17, 2016 (edited) а если я сделаю после инцилизации гуи (PlayerAvatar._PlayerAvatar__startGUI)Попробуй, но при Alt+Tab все может вернуться на место. Лучше флешку с событием на ресайз использовать. Edited August 17, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #347813 Posted August 17, 2016 Попробуй, но при Alt+Tab все может вернуться на место. Лучше флешку с событием на ресайз использовать. что то у меня вылетает def new_startGUI(self): old_startGUI(self) app = g_appLoader.getDefBattleApp() if app is not None: app.containerManager.getContainer(ViewTypes.VIEW).getView().components[BATTLE_VIEW_ALIASES.DAMAGE_PANEL].flashObject.x = 90 app.containerManager.getContainer(ViewTypes.VIEW).getView().components[BATTLE_VIEW_ALIASES.DAMAGE_PANEL].flashObject.y = 90 old_startGUI = PlayerAvatar._PlayerAvatar__startGUI PlayerAvatar._PlayerAvatar__startGUI = new_startGUI AttributeError: 'NoneType' object has no attribute 'getContainer' Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #347816 Posted August 17, 2016 что то у меня вылетаетА это значит, что слишком раннее событие ты выбрал. Попробуй onAppInitialized Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #347819 Posted August 17, 2016 А это значит, что слишком раннее событие ты выбрал. Попробуй onAppInitialized тут? def new_startGUI(self, event): old_startGUI(self, event) app = g_appLoader.getDefBattleApp() if app is not None: app.containerManager.getContainer(ViewTypes.VIEW).getView().components[BATTLE_VIEW_ALIASES.DAMAGE_PANEL].flashObject.x = 90 app.containerManager.getContainer(ViewTypes.VIEW).getView().components[BATTLE_VIEW_ALIASES.DAMAGE_PANEL].flashObject.y = 90 old_startGUI = g_appLoader.__AppLoader__onAppInitializing g_appLoader.__AppLoader__onAppInitializing = new_startGUI Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #347820 Posted August 17, 2016 (edited) тут?нет. onAppInitialized идет после onAppInitializing http://www.koreanrandom.com/forum/topic/28160-/?p=334432 Edited August 17, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #347830 Posted August 17, 2016 нет. onAppInitialized идет после onAppInitializing http://www.koreanrandom.com/forum/topic/28160-/?p=334432 def onAppInitialized(event): if event.ns == APP_NAME_SPACE.SF_BATTLE: app = g_appLoader.getApp(event.ns) if app is not None: app.containerManager.getContainer(ViewTypes.VIEW).getView().components[BATTLE_VIEW_ALIASES.DAMAGE_PANEL].flashObject.x = 200 g_eventBus.addListener(events.AppLifeCycleEvent.INITIALIZED, onAppInitialized) AttributeError: 'NoneType' object has no attribute 'components' Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #347833 Posted August 17, 2016 (edited) . Edited January 10, 2022 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #347837 Posted August 17, 2016 @Ekspoint, а если так: def applyPositionDPanel(): app = g_appLoader.getApp(event.ns) if app is not None: view = app.containerManager.getContainer(ViewTypes.VIEW).getView() dpanel = view.components[BATTLE_VIEW_ALIASES.DAMAGE_PANEL] dpanel.flashObject.x = 200 def onAppInitialized(event): if event.ns == APP_NAME_SPACE.SF_BATTLE: BigWorld.callback(1.0, applyPositionDPanel) g_eventBus.addListener(events.AppLifeCycleEvent.INITIALIZED, onAppInitialized) тоже самое Quote Share this post Link to post Short link Share on other sites
IzeBerg 128 #347878 Posted August 17, 2016 from PlayerEvents import g_playerEvents g_playerEvents.onAvatarReady Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #348031 Posted August 18, 2016 from PlayerEvents import g_playerEvents g_playerEvents.onAvatarReady а дальше как и что? Quote Share this post Link to post Short link Share on other sites
spoter 1,402 #348148 Posted August 18, 2016 from PlayerEvents import g_playerEvents g_playerEvents.onAvatarReady def hookAvatarReady(*args): print 'test1' g_playerEvents.onAvatarReady += hookAvatarReady Это при старте гуи. И при стоп гуи делай g_playerEvents.onAvatarReady -= hookAvatarReady По факту ты к событию подпишешь свою функцию, а потом уберёшь из подписки. Quote Share this post Link to post Short link Share on other sites
Armagomen_UA 158 #350745 Posted August 30, 2016 (edited) Такая же ерунда, не могу сдвинуть полосу захвата через BATTLE_VIEW_ALIASES.TEAM_BASES_PANEL хотя print dir(event.componentPy.flashObject) отрабатывает все компоненты принтит x/y/z доступны но ничего не происходит. g_eventBus.addListener(events.ComponentEvent.COMPONENT_REGISTERED, self.onComponentRegistered, scope=EVENT_BUS_SCOPE.DEFAULT) g_eventBus.addListener(events.AppLifeCycleEvent.INITIALIZING, self.onAppInitializing) def onComponentRegistered(self, event): if event.alias == BATTLE_VIEW_ALIASES.FRAG_CORRELATION_BAR: event.componentPy.flashObject.y = 45 if event.alias == BATTLE_VIEW_ALIASES.DEBUG_PANEL and cfg.data['debugPanel']['showModDebug']: event.componentPy.flashObject.visible = False if event.alias == BATTLE_VIEW_ALIASES.BATTLE_TIMER and cfg.data['battleTimer']['showClock']: event.componentPy.flashObject.visible = False def onAppInitializing(self, event): if event.ns == APP_NAME_SPACE.SF_BATTLE: g_appLoader.getDefBattleApp().loadView('NewFragCorrelationBar') Что самое интересное visible отрабатывает как швейцарские часы. но если вместо визибл написать позицию. ничего не происходит. Edited August 30, 2016 by Armagomen_dev Quote Share this post Link to post Short link Share on other sites