/// <summary>
    /// Cross Fade.
    /// </summary>
    /// <param name='tweenData'>
    /// Tween data.
    /// </param>
    public override void CROSS_FADE(TweenOperandData tweenData)
    {
        ContainsKey_sendDelayAndStartCoroutine(ref tweenData.paramTable);
        float duration = ContainsKey_duration(ref tweenData.paramTable);

        if (tweenData.tweenTarget != null)
        {
            if (tweenData.paramTable.ContainsKey("objectA")
                &&
                tweenData.paramTable.ContainsKey("objectB"))
            {
                string objAName = tweenData.paramTable["objectA"] as string;
                string objBName = tweenData.paramTable["objectB"] as string;

                Transform A = tweenData.tweenTarget.transform.FindChild(objAName);
                Transform B = tweenData.tweenTarget.transform.FindChild(objBName);

                ColorPanel panelA = A.GetComponent <ColorPanel>();
                ColorPanel panelB = B.GetComponent <ColorPanel>();
                panelA.duration = duration;
                panelB.duration = duration;

                if (panelA.alpha > panelB.alpha)
                {
                    panelA.StartFade(0f, 1f);
                    panelB.StartFade(1f, 0f);
                }
                else
                {
                    panelA.StartFade(1f, 0f);
                    panelB.StartFade(0f, 1f);
                }
            }
        }
    }
    /// <summary>
    /// Fade ColorPanel.
    /// </summary>
    /// <param name='tweenData'>
    /// Tween data.
    /// </param>
    public override void FADE_PANEL(TweenOperandData tweenData)
    {
        Hashtable  paramHash           = tweenData.paramTable;
        GameObject panelAttachedObject = tweenData.tweenTarget;

        ContainsKey_sendDelayAndStartCoroutine(ref paramHash);
        float  duration = ContainsKey_duration(ref paramHash);
        string fadeStr  = (string)paramHash["fadeTo"].ToString();
        float  fadeTo   = float.Parse(fadeStr, CultureInfo.InvariantCulture);

        ColorPanel uipanel  = panelAttachedObject.GetComponent <ColorPanel>();
        float      fadeFrom = uipanel.alpha;

        if (paramHash.ContainsKey("fadeFrom"))
        {
            fadeFrom = GetValueFromKey(ref paramHash, "fadeFrom");
        }
        if (paramHash.ContainsKey("fadeTo"))
        {
            if (uipanel != null)
            {
                uipanel.enabled  = true;
                uipanel.duration = duration;
                uipanel.StartFade(fadeTo, fadeFrom);
            }
        }
#if false
        // If root node has Panels in children , Start Fading Each Panels of Children .
        ColorPanel[] childPanels = panelAttachedObject.GetComponentsInChildren <ColorPanel>();
        if (childPanels != null)
        {
            for (int i = 0; i < childPanels.Length; i++)
            {
                childPanels[i].enabled = true;
                uipanel.duration       = duration;
                childPanels[i].StartFade(fadeTo, fadeFrom);
            }
        }
#endif
    }