4

これは、スライドの例のスクリーンショットです。「ピザ」という言葉にアニメーションがあります。これが文字列のどこで発生するかを文字番号で見つけようとしています。

スライドの例 アニメーションに関する情報を取得するための私のコード:

foreach (PowerPoint.Effect effect in slide.TimeLine.MainSequence)
        {
            animationMap[animationCount] = new WBLAnimation(effect,shapeMap[effect.Shape.Id],effect.TextRangeStart,effect.TextRangeStart+effect.TextRangeLength);
            animationCount++;
        }

Pizza は 11 文字目あたりから開始する必要がありますが、TextRangeStart プロパティは 80 文字目あたりから開始すると主張しています。TextRangeLength も間違っています。長さは 6 ("Pizza?" の長さ) であるはずなのに、71 文字であると主張しています。私には、これはアニメーション部分ではなくテキスト範囲の全長をカウントしているようです。

WBLAnimation は単なるヘルパー クラスです。エフェクト、シェイプ、シェイプの開始位置、および終了位置を取ります。これは最終的にリファクタリングする必要があります。これは、私がこの情報を取得する方法の単なる例であるため、誰かが私が間違っていることを指摘する可能性があります.

文字列内でアニメーションが発生している場所を見つける別の方法はありますか?

ありがとう!!!

4

2 に答える 2

1

アニメーションは常にオブジェクトに適用されると思います。これは、「Pizza」という単語にアニメーションがないことを意味します。「Pizza」という単語を含むオブジェクト (テキスト ボックス?) にアニメーションがあります。

于 2012-04-19T13:39:33.220 に答える
0

どうやらパワーポイントにバグがあるようです。TextRangeStart は常にアニメーション テキスト範囲の最後の段落を示します: http://answers.microsoft.com/en-us/office/forum/office_2010-powerpoint/where-can-i-find-the-start-and-テキストの終わり/43a16276-8abc-4cb2-9753-46c7119e7618

ということで、アニメーションのパラグラフインデックスとシェイプを合わせて、そこから文字インデックスを見つけました。それは回り道ですが、うまくいきます...

私は、ある種のpptからhtmlへのコンバーターの作業に取り組もうとしています。RaphaelJS を使用して、これらすべてをレンダリングします。誰かが貢献したい場合は、https ://github.com/parris/tilda をチェックしてください... 私は 1 週間以内にかなり良いコミットをするつもりです。

みんな助けてくれてありがとう。

于 2012-04-25T00:46:52.027 に答える