Jump to content
Korean Random
Ekspoint

BATTLE_VIEW_ALIASES

Recommended Posts

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?

Share this post


Link to post

Short link
Share on other sites

как узнать какие есть компоненты у flashObject?

print dir(event.componentPy.flashObject) не работает?
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

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) 

что то не меняется позиция панели

Share this post


Link to post

Short link
Share on other sites

что то не меняется позиция панели

Позиция устанавливается в самой флешке чуть позже, чем инициализирутся компонент в питоне. Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Позиция устанавливается в самой флешке чуть позже, чем инициализирутся компонент в питоне.

а если я сделаю после инцилизации гуи (PlayerAvatar._PlayerAvatar__startGUI)

Edited by Ekspoint

Share this post


Link to post

Short link
Share on other sites

а если я сделаю после инцилизации гуи (PlayerAvatar._PlayerAvatar__startGUI)

Попробуй, но при Alt+Tab все может вернуться на место. Лучше флешку с событием на ресайз использовать. Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Попробуй, но при 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'

Share this post


Link to post

Short link
Share on other sites

что то у меня вылетает

А это значит, что слишком раннее событие ты выбрал.

Попробуй onAppInitialized

Share this post


Link to post

Short link
Share on other sites

А это значит, что слишком раннее событие ты выбрал.

Попробуй 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

Share this post


Link to post

Short link
Share on other sites

нет. 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'

Share this post


Link to post

Short link
Share on other sites

@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)

тоже самое

Share this post


Link to post

Short link
Share on other sites

 

from PlayerEvents import g_playerEvents
g_playerEvents.onAvatarReady
а дальше как и что?

Share this post


Link to post

Short link
Share on other sites

 

from PlayerEvents import g_playerEvents
g_playerEvents.onAvatarReady
def hookAvatarReady(*args):

print 'test1'

 

g_playerEvents.onAvatarReady += hookAvatarReady

 

Это при старте гуи. И при стоп гуи делай

 

g_playerEvents.onAvatarReady -= hookAvatarReady

 

По факту ты к событию подпишешь свою функцию, а потом уберёшь из подписки.

Share this post


Link to post

Short link
Share on other sites

Такая же ерунда, не могу сдвинуть полосу захвата через 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 by Armagomen_dev

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...