示例#1
0
 public void NavTo(string ScreenName)
 {
     if (navTarget != null)
     {
         return;
     }
     if (current != null && current.name == ScreenName)
     {
         return;
     }
     foreach (var s in screens)
     {
         if (s.name == ScreenName)
         {
             navTarget = s;
             s.BeginInit();
             continue;
         }
         if (navTarget != null)
         {
             s.BeginExit();
         }
     }
     if (navTarget == null)
     {
         navTarget = new ScreenProxy(ScreenName, this);
         navTarget.BeginInit();
         screens.Add(navTarget);
     }
 }
示例#2
0
    public void Update(float delta)
    {
        string release = null;

        foreach (var m in models)
        {
            m.Value.Update(delta);
            if (m.Value.inited)
            {
            }
            if (m.Value.exited && release != null)
            {
                release = m.Key;
            }
        }
        if (release != null)
        {
            models.Remove(release);
        }

        //刷新所有屏幕状态
        ScreenProxy remove = null;

        foreach (var p in screens)
        {
            if (p.exited)
            {
                remove = p;
            }
            p.Update();
        }
        if (remove != null)
        {
            screens.Remove(remove);
        }
        //刷新当前Screen
        if (current != null)
        {
            current.Update(delta);
        }
        //是否要导航
        if (navTarget != null)
        {
            if (navTarget.inited)
            {
                current = navTarget.screen;
            }
        }
    }