修复SerieEventDatavalue一直是0的问题 (#287)

This commit is contained in:
monitor1394
2023-11-05 20:09:28 +08:00
parent a730404935
commit 83db4dd951
5 changed files with 35 additions and 32 deletions

View File

@@ -195,8 +195,9 @@ namespace XCharts.Runtime
Internal_CheckAnimation();
foreach (var handler in m_SerieHandlers) handler.BeforeUpdate();
foreach (var handler in m_SerieHandlers) handler.Update();
foreach (var handler in m_SerieHandlers) handler.AfterUpdate();
foreach (var handler in m_ComponentHandlers) handler.Update();
foreach (var handler in m_SerieHandlers) handler.AfterUpdate();
m_DebugInfo.Update();
if (m_OnUpdate != null)
m_OnUpdate();

View File

@@ -22,6 +22,7 @@ namespace XCharts.Runtime
data.dataIndex = dataIndex;
data.pointerPos = pos;
data.dimension = dimension;
data.value = value;
return data;
}

View File

@@ -149,38 +149,11 @@ namespace XCharts.Runtime
serie.interactDirty = false;
m_ForceUpdateSerieContext = true;
}
UpdateSerieContextInternal();
}
public override void AfterUpdate()
{
UpdateSerieContextInternal();
}
public override void ForceUpdateSerieContext()
{
m_ForceUpdateSerieContext = true;
}
private void CheckConfigurationChanged()
{
if (m_LastRadius[0] != serie.radius[0] || m_LastRadius[1] != serie.radius[1])
{
m_LastRadius[0] = serie.radius[0];
m_LastRadius[1] = serie.radius[1];
serie.SetVerticesDirty();
}
if (m_LastCenter[0] != serie.center[0] || m_LastCenter[1] != serie.center[1])
{
m_LastCenter[0] = serie.center[0];
m_LastCenter[1] = serie.center[1];
serie.SetVerticesDirty();
}
}
private void UpdateSerieContextInternal()
{
UpdateSerieContext();
m_ForceUpdateSerieContext = false;
if (m_LastPointerEnter != serie.context.pointerEnter || m_LastPointerDataIndex != serie.context.pointerItemDataIndex)
{
if (chart.onSerieEnter != null || chart.onSerieExit != null || serie.onEnter != null || serie.onExit != null)
@@ -215,6 +188,33 @@ namespace XCharts.Runtime
}
}
public override void ForceUpdateSerieContext()
{
m_ForceUpdateSerieContext = true;
}
private void CheckConfigurationChanged()
{
if (m_LastRadius[0] != serie.radius[0] || m_LastRadius[1] != serie.radius[1])
{
m_LastRadius[0] = serie.radius[0];
m_LastRadius[1] = serie.radius[1];
serie.SetVerticesDirty();
}
if (m_LastCenter[0] != serie.center[0] || m_LastCenter[1] != serie.center[1])
{
m_LastCenter[0] = serie.center[0];
m_LastCenter[1] = serie.center[1];
serie.SetVerticesDirty();
}
}
private void UpdateSerieContextInternal()
{
UpdateSerieContext();
m_ForceUpdateSerieContext = false;
}
public override void RefreshLabelNextFrame()
{
m_RefreshLabel = true;