Beispiel #1
0
        public void AddSpriteEvent(SpriteEvent sprite)
        {
            switch (sprite.Layer)
            {
            case EventLayer.Background:
                BackgroundEvents.Add(sprite);
                break;

            case EventLayer.Fail:
                FailEvents.Add(sprite);
                break;

            case EventLayer.Pass:
                PassEvents.Add(sprite);
                break;

            case EventLayer.Foreground:
                ForegroundEvents.Add(sprite);
                break;

            default:
                throw new ArgumentException("The sprite's (event)layer was not set to a known storyboard layer");
            }
        }
Beispiel #2
0
        public static EventBase Parse(string s)
        {
            var        parts = s.Split(Constants.Splitter.Comma);
            EventTypes etype;
            EventBase  result;

            if (Enum.TryParse(parts[0], out etype))
            {
                var path = "";
                if (parts.Length > 3)
                {
                    path = parts[3].Trim('\"');
                }
                switch (etype)
                {
                case (EventTypes.Sprite):
                    result = new SpriteEvent(path,
                                             (EventLayer)Enum.Parse(typeof(EventLayer), parts[1]),
                                             (Origin)Enum.Parse(typeof(Origin), parts[2]), float.Parse(parts[4], Constants.IO.CULTUREINFO), float.Parse(parts[5], Constants.IO.CULTUREINFO));
                    break;

                case (EventTypes.Animation):
                    Looptypes lt;
                    result = new AnimationEvent(path,
                                                int.Parse(parts[6]), int.Parse(parts[7]), (EventLayer)Enum.Parse(typeof(EventLayer), parts[1]), (Origin)Enum.Parse(typeof(Origin), parts[2]), float.Parse(parts[4], Constants.IO.CULTUREINFO), float.Parse(parts[5], Constants.IO.CULTUREINFO), Enum.TryParse(parts[8], out lt) ? lt : Looptypes.LoopForever);
                    break;

                case (EventTypes.Sample):
                    result = new SampleEvent(parts[3], int.Parse(parts[1]),
                                             int.Parse(parts[4]), (EventLayer)int.Parse(parts[2]));
                    break;

                case (EventTypes.Background):
                    result = new BackgroundEvent(int.Parse(parts[1]), parts[2].Trim('"'),
                                                 parts.Length > 3 ? int.Parse(parts[3]) : 0, parts.Length > 4 ? int.Parse(parts[4]) : 0);
                    break;

                case (EventTypes.Video):
                    result = new VideoEvent(int.Parse(parts[1]), parts[2].Trim('"'));
                    break;

                case (EventTypes.Break):
                    result = new BreakEvent(int.Parse(parts[1]), int.Parse(parts[2]));
                    break;

                case (EventTypes.Backgroundcolor):
                    result = new BackgroundColorEvent(int.Parse(parts[1]), int.Parse(parts[2]), int.Parse(parts[3]),
                                                      int.Parse(parts[4]));
                    break;

                default:
                    result = new UndefinedEvent(parts);
                    break;
                }
            }
            else
            {
                result = new UndefinedEvent(parts);
            }
            return(result);
            //0,0,"JamesHa.jpg",0,0 //image
            //Video,4655,"Jmmxp.avi" //video
            //2,110843,118365 //break
            //3 //Backgroundcolor
        }