Beispiel #1
0
    public override void ConstructWordEffect <T>(T effectData)
    {
        TypeWriterEffectData data = effectData as TypeWriterEffectData;

        if (data == null)
        {
            throw new Exception(string.Format("try to create word effect with wrong data"));
        }
    }
Beispiel #2
0
    static List <WordEffect> CreateWordEffects(string line, Word ownerWord)
    {
        List <WordEffect> createdWordEffect = new List <WordEffect>();
        //用|来分割关键字段
        List <string> phrases = new List <string>(line.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries));

        foreach (string phrase in phrases)
        {
            if (phrase.Contains("<"))
            {
                char[] phraseCharArr = phrase.ToCharArray();

                for (int i = 0; i < phraseCharArr.Length; ++i)
                {
                    char ch = phraseCharArr[i];
                    if (i == 0 && ch != '<')
                    {
                        throw new Exception(string.Format("Wrong line {0}", phrase));
                    }

                    if (i == 1)
                    {
                        switch (ch)
                        {
                        case 'T':
                            TypeWriterEffectData data             = new TypeWriterEffectData(phrase);
                            TypeWriterEffect     typeWriterEffect = CreateWordEffect <TypeWriterEffect, TypeWriterEffectData>(data);

                            createdWordEffect.Add(typeWriterEffect);
                            break;
                        }
                    }
                }
                foreach (char ch in phraseCharArr)
                {
                }


                if (phraseCharArr[0] != '<')
                {
                }
                char typeC = phraseCharArr[1];
            }
            else
            {
                //default we use TypeWriterEffect
                TypeWriterEffectData data             = new TypeWriterEffectData(phrase);
                TypeWriterEffect     typeWriterEffect = CreateWordEffect <TypeWriterEffect, TypeWriterEffectData>(data);

                createdWordEffect.Add(typeWriterEffect);
            }
        }

        return(createdWordEffect);
    }