mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-24 18:00:26 +00:00
完善Pie饼图的交互动画效果
This commit is contained in:
@@ -10,20 +10,24 @@ namespace XCharts.Runtime
|
|||||||
[System.Serializable]
|
[System.Serializable]
|
||||||
public class MLValue : ChildComponent
|
public class MLValue : ChildComponent
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// the type of value.
|
||||||
|
/// |数值类型。
|
||||||
|
/// </summary>
|
||||||
public enum Type
|
public enum Type
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Percent form.
|
/// Percent value form.
|
||||||
/// |百分比形式。
|
/// |百分比形式。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Percent,
|
Percent,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Absolute form.
|
/// Absolute value form.
|
||||||
/// |绝对值形式。
|
/// |绝对值形式。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Absolute,
|
Absolute,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Extra form.
|
/// Extra value form.
|
||||||
/// |额外形式。
|
/// |额外形式。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Extra
|
Extra
|
||||||
@@ -34,18 +38,24 @@ namespace XCharts.Runtime
|
|||||||
public Type type { get { return m_Type; } set { m_Type = value; } }
|
public Type type { get { return m_Type; } set { m_Type = value; } }
|
||||||
public float value { get { return m_Value; } set { m_Value = value; } }
|
public float value { get { return m_Value; } set { m_Value = value; } }
|
||||||
|
|
||||||
public MLValue(Type type, float value)
|
|
||||||
{
|
|
||||||
m_Type = type;
|
|
||||||
m_Value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MLValue(float value)
|
public MLValue(float value)
|
||||||
{
|
{
|
||||||
m_Type = Type.Percent;
|
m_Type = Type.Percent;
|
||||||
m_Value = value;
|
m_Value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MLValue(Type type, float value)
|
||||||
|
{
|
||||||
|
m_Type = type;
|
||||||
|
m_Value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the value by type.
|
||||||
|
/// |根据类型获取值。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="total">默认值</param>
|
||||||
|
/// <returns></returns>
|
||||||
public float GetValue(float total)
|
public float GetValue(float total)
|
||||||
{
|
{
|
||||||
switch (m_Type)
|
switch (m_Type)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace XCharts.Runtime
|
|||||||
m_LastCheckContextFlag = needCheck;
|
m_LastCheckContextFlag = needCheck;
|
||||||
serie.context.pointerItemDataIndex = -1;
|
serie.context.pointerItemDataIndex = -1;
|
||||||
serie.context.pointerEnter = false;
|
serie.context.pointerEnter = false;
|
||||||
serie.interact.SetValue(ref needAnimation1, lineWidth, false);
|
serie.interact.SetValue(ref needAnimation1, lineWidth);
|
||||||
foreach (var serieData in serie.data)
|
foreach (var serieData in serie.data)
|
||||||
{
|
{
|
||||||
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
||||||
@@ -53,7 +53,7 @@ namespace XCharts.Runtime
|
|||||||
if (m_LegendEnter)
|
if (m_LegendEnter)
|
||||||
{
|
{
|
||||||
serie.context.pointerEnter = true;
|
serie.context.pointerEnter = true;
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
for (int i = 0; i < serie.dataCount; i++)
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
{
|
{
|
||||||
var serieData = serie.data[i];
|
var serieData = serie.data[i];
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace XCharts.Runtime
|
|||||||
m_LastCheckContextFlag = needCheck;
|
m_LastCheckContextFlag = needCheck;
|
||||||
serie.context.pointerItemDataIndex = -1;
|
serie.context.pointerItemDataIndex = -1;
|
||||||
serie.context.pointerEnter = false;
|
serie.context.pointerEnter = false;
|
||||||
serie.interact.SetValue(ref needAnimation1, lineWidth, false);
|
serie.interact.SetValue(ref needAnimation1, lineWidth);
|
||||||
foreach (var serieData in serie.data)
|
foreach (var serieData in serie.data)
|
||||||
{
|
{
|
||||||
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
||||||
@@ -53,7 +53,7 @@ namespace XCharts.Runtime
|
|||||||
if (m_LegendEnter)
|
if (m_LegendEnter)
|
||||||
{
|
{
|
||||||
serie.context.pointerEnter = true;
|
serie.context.pointerEnter = true;
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
for (int i = 0; i < serie.dataCount; i++)
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
{
|
{
|
||||||
var serieData = serie.data[i];
|
var serieData = serie.data[i];
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ namespace XCharts.Runtime
|
|||||||
if (m_LegendEnter)
|
if (m_LegendEnter)
|
||||||
{
|
{
|
||||||
serie.context.pointerEnter = true;
|
serie.context.pointerEnter = true;
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
for (int i = 0; i < serie.dataCount; i++)
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
{
|
{
|
||||||
var serieData = serie.data[i];
|
var serieData = serie.data[i];
|
||||||
@@ -73,7 +73,7 @@ namespace XCharts.Runtime
|
|||||||
else if (serie.context.isTriggerByAxis)
|
else if (serie.context.isTriggerByAxis)
|
||||||
{
|
{
|
||||||
serie.context.pointerEnter = false;
|
serie.context.pointerEnter = false;
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
for (int i = 0; i < serie.dataCount; i++)
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
{
|
{
|
||||||
var serieData = serie.data[i];
|
var serieData = serie.data[i];
|
||||||
@@ -116,7 +116,7 @@ namespace XCharts.Runtime
|
|||||||
needInteract = true;
|
needInteract = true;
|
||||||
}
|
}
|
||||||
if (serie.context.pointerItemDataIndex >= 0)
|
if (serie.context.pointerItemDataIndex >= 0)
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
else
|
else
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth);
|
serie.interact.SetValue(ref needInteract, lineWidth);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace XCharts.Runtime
|
|||||||
m_LastCheckContextFlag = needCheck;
|
m_LastCheckContextFlag = needCheck;
|
||||||
serie.context.pointerItemDataIndex = -1;
|
serie.context.pointerItemDataIndex = -1;
|
||||||
serie.context.pointerEnter = false;
|
serie.context.pointerEnter = false;
|
||||||
serie.interact.SetValue(ref needAnimation1, lineWidth, false);
|
serie.interact.SetValue(ref needAnimation1, lineWidth);
|
||||||
foreach (var serieData in serie.data)
|
foreach (var serieData in serie.data)
|
||||||
{
|
{
|
||||||
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
||||||
@@ -53,7 +53,7 @@ namespace XCharts.Runtime
|
|||||||
if (m_LegendEnter)
|
if (m_LegendEnter)
|
||||||
{
|
{
|
||||||
serie.context.pointerEnter = true;
|
serie.context.pointerEnter = true;
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
for (int i = 0; i < serie.dataCount; i++)
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
{
|
{
|
||||||
var serieData = serie.data[i];
|
var serieData = serie.data[i];
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace XCharts.Runtime
|
|||||||
m_LastCheckContextFlag = needCheck;
|
m_LastCheckContextFlag = needCheck;
|
||||||
serie.context.pointerItemDataIndex = -1;
|
serie.context.pointerItemDataIndex = -1;
|
||||||
serie.context.pointerEnter = false;
|
serie.context.pointerEnter = false;
|
||||||
serie.interact.SetValue(ref needAnimation1, lineWidth, false);
|
serie.interact.SetValue(ref needAnimation1, lineWidth);
|
||||||
foreach (var serieData in serie.data)
|
foreach (var serieData in serie.data)
|
||||||
{
|
{
|
||||||
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
||||||
@@ -72,7 +72,7 @@ namespace XCharts.Runtime
|
|||||||
if (m_LegendEnter)
|
if (m_LegendEnter)
|
||||||
{
|
{
|
||||||
serie.context.pointerEnter = true;
|
serie.context.pointerEnter = true;
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
for (int i = 0; i < serie.dataCount; i++)
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
{
|
{
|
||||||
var serieData = serie.data[i];
|
var serieData = serie.data[i];
|
||||||
@@ -84,7 +84,7 @@ namespace XCharts.Runtime
|
|||||||
else if (serie.context.isTriggerByAxis)
|
else if (serie.context.isTriggerByAxis)
|
||||||
{
|
{
|
||||||
serie.context.pointerEnter = true;
|
serie.context.pointerEnter = true;
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
for (int i = 0; i < serie.dataCount; i++)
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
{
|
{
|
||||||
var serieData = serie.data[i];
|
var serieData = serie.data[i];
|
||||||
@@ -119,7 +119,7 @@ namespace XCharts.Runtime
|
|||||||
{
|
{
|
||||||
serie.context.pointerEnter = true;
|
serie.context.pointerEnter = true;
|
||||||
serie.context.pointerItemDataIndex = serieData.index;
|
serie.context.pointerItemDataIndex = serieData.index;
|
||||||
serie.interact.SetValue(ref needInteract, lineWidth, true);
|
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (lastIndex != serie.context.pointerItemDataIndex)
|
if (lastIndex != serie.context.pointerItemDataIndex)
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ namespace XCharts.Runtime
|
|||||||
if (m_LegendEnter)
|
if (m_LegendEnter)
|
||||||
{
|
{
|
||||||
serieData.context.highlight = true;
|
serieData.context.highlight = true;
|
||||||
serieData.interact.SetValue(ref needInteract, symbolSize, serieData.context.highlight);
|
serieData.interact.SetValue(ref needInteract, serie.animation.interaction.GetRadius(symbolSize));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -164,7 +164,10 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
serieData.interact.SetValue(ref needInteract, symbolSize, serieData.context.highlight);
|
if (serieData.context.highlight)
|
||||||
|
serieData.interact.SetValue(ref needInteract, serie.animation.interaction.GetRadius(symbolSize));
|
||||||
|
else
|
||||||
|
serieData.interact.SetValue(ref needInteract, symbolSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user