void DecodeValue(TransitionActionType type, string str, TransitionValue value)
{
string[] arr;
switch (type)
{
case TransitionActionType.XY:
case TransitionActionType.Size:
case TransitionActionType.Pivot:
case TransitionActionType.Skew:
arr = str.Split(',');
if (arr[0] == "-")
{
value.b1 = false;
}
else
{
value.f1 = float.Parse(arr[0]);
value.b1 = true;
}
if (arr[1] == "-")
{
value.b2 = false;
}
else
{
value.f2 = float.Parse(arr[1]);
value.b2 = true;
}
break;
case TransitionActionType.Alpha:
value.f1 = float.Parse(str);
break;
case TransitionActionType.Rotation:
value.f1 = int.Parse(str);
break;
case TransitionActionType.Scale:
arr = str.Split(',');
value.f1 = float.Parse(arr[0]);
value.f2 = float.Parse(arr[1]);
break;
case TransitionActionType.Color:
value.c = ToolSet.ConvertFromHtmlColor(str);
break;
case TransitionActionType.Animation:
arr = str.Split(',');
if (arr[0] == "-")
{
value.b1 = false;
}
else
{
value.i = int.Parse(arr[0]);
value.b1 = true;
}
value.b = arr[1] == "p";
break;
case TransitionActionType.Visible:
value.b = str == "true";
break;
case TransitionActionType.Sound:
arr = str.Split(',');
value.s = arr[0];
if (arr.Length > 1)
{
int intv = int.Parse(arr[1]);
if (intv == 100 || intv == 0)
value.f1 = 1;
else
value.f1 = (float)intv / 100f;
}
else
value.f1 = 1;
break;
case TransitionActionType.Transition:
arr = str.Split(',');
value.s = arr[0];
if (arr.Length > 1)
value.i = int.Parse(arr[1]);
else
value.i = 1;
break;
case TransitionActionType.Shake:
arr = str.Split(',');
value.f1 = float.Parse(arr[0]);
value.f2 = float.Parse(arr[1]);
break;
case TransitionActionType.ColorFilter:
arr = str.Split(',');
value.f1 = float.Parse(arr[0]);
value.f2 = float.Parse(arr[1]);
value.f3 = float.Parse(arr[2]);
value.f4 = float.Parse(arr[3]);
break;
}
}