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