public override void Visit(EditorControl c)
    {
        currCtrl = c as PlayCtrl;

        if (
            (null == currCtrl)
            )
        {
            return;
        }

        EditorGUI.BeginDisabledGroup(!currCtrl.Enable);

        EditorGUILayout.BeginHorizontal();
        float newPlayTime = 0.0f;

        try
        {
            GUI.SetNextControlName(currCtrl.CtrlID);
            newPlayTime =
                EditorGUILayout.Slider(currCtrl.PlayTime, 0.0f, currCtrl.TotalTime,
                                       new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(20f), GUILayout.MinWidth(300f) });
        }catch (Exception e)
        {
            e.GetType();
            //Debug.Log(e.Message);
        }

        EditorGUI.EndDisabledGroup();

        c.UpdateLastRect();

        CheckInputEvent(c);

        //若鼠标在播放条发生点按事件,暂停播放
        if (c.LastRect.Contains(CalcLocalPos(c, FrameInputInfo.GetInstance().currPos)))
        {
            if (
                FrameInputInfo.GetInstance().leftButtonDown&&
                FrameInputInfo.GetInstance().leftBtnPress&&
                c.IsCurrentCtrlEnable()
                )
            {
                currCtrl.Pause();
            }
        }

        if (!currCtrl.IsPlaying)
        {
            if (Mathf.Abs(currCtrl.PlayTime - newPlayTime) > Mathf.Epsilon)
            {
                currCtrl.frameTriggerInfo.isValueChanged = true;
            }
            currCtrl.PlayTime      = newPlayTime;
            currCtrl.IsForceUpdate = false;
        }

        EditorGUI.BeginDisabledGroup(!currCtrl.Enable);

        GUILayoutOption[] btnOptions = new GUILayoutOption[] {
            GUILayout.Width(40), GUILayout.Height(20)
        };

        if (!currCtrl.IsPlaying)
        {
            if (GUILayout.Button("播放", btnOptions))
            {
                currCtrl.Play();
                currCtrl.frameTriggerInfo.isValueChanged = true;
                currCtrl.frameTriggerInfo.isPlay         = true;
            }
        }
        else
        {
            if (GUILayout.Button("暂停", btnOptions))
            {
                currCtrl.Pause();
                currCtrl.frameTriggerInfo.isValueChanged = true;
                currCtrl.frameTriggerInfo.isPause        = true;
            }
        }
        //if( GUILayout.Button("播放", btnOptions) )
        //{
        //    currCtrl.Play();
        //    currCtrl.frameTriggerInfo.isValueChanged = true;
        //    currCtrl.frameTriggerInfo.isPlay = true;
        //}
        //if( GUILayout.Button("暂停", btnOptions) )
        //{
        //    currCtrl.Pause();
        //    currCtrl.frameTriggerInfo.isValueChanged = true;
        //    currCtrl.frameTriggerInfo.isPause = true;
        //}
        if (GUILayout.Button("停止", btnOptions))
        {
            currCtrl.Stop();
            currCtrl.frameTriggerInfo.isValueChanged = true;
            currCtrl.frameTriggerInfo.isStop         = true;
        }

        EditorGUILayout.LabelField("Loop", GUILayout.Width(30f));
        currCtrl.IsLoop = EditorGUILayout.Toggle(currCtrl.IsLoop, GUILayout.Width(20f));

        EditorGUI.EndDisabledGroup();


        EditorGUILayout.EndHorizontal();

        SpecialEffectEditorUtility.GetLastRect(ref totalRect);

        CheckInputEvent(c, totalRect);
    }