12

XFL は新しい圧縮されていない ADOBE FLASH (CS5) ソース ファイルで、XML 定義から構成されています。それらのほとんどは明確ですが、残念ながら、重要なものは奇妙です。

さまざまな既存のソースを見ると、形状の EDGE 定義が次のように表示されます。

<Edge strokeStyle="1" edges="!0 0S4|180 0"/>
<Edge strokeStyle="1" edges="!2720 2720S6|0 2720!0 2720|0 0!0 0/2720 2720"/>
<Edge fillStyle1="1" edges="!3532 1539.5S2[#BD9.4D #577.3C 2952.5 1756.5!2952.5 1756.5[#AF6.DA #4C6.1D 3584 1119!3584 1119|3532 1539.5"/> 

私が言えるいくつかのテストを行うと、次のようになります。

! == move to position
| == draw line from the position to the new position
/ == probably same like |
[ == draw curve
( == probably same like [

しかし、S4#BD9.4Dのような値は何を意味するのでしょうか? 私のまだ証明されていない推測は、#値が何らかの形で非常に小さな数値にエンコードされる可能性があるということです。S4が何であるかはわかりません。

4

2 に答える 2

12

!(x,y)へ引っ越す

/(x,y)+lineTo

|(x,y)+lineTo

[(x1 y1 ex ey)+CurveTo (二次)

](x1 y1 ex ey)+CurveTo (二次)

((pBCPx pBCPy)? ; x1 y1 x2 y2 ex ey (({Q,q,P,p})? x y)+CurveTo (キュービック スタート)

)(nBCPx nBCPy)? ;CurveTo (キュービック エンド)

Sn選択 (n=ビットマスク、1:fillStyle0、2:fillStyle1、4:ストローク)

#aaaaaa.bb符号付き固定小数点 32 ビット数です

于 2010-11-02T12:39:14.157 に答える
0

うーん... # 値の推測が間違っていました!

生成された形状を逆コンパイルしたところ、たとえば、値#BD9.4Dは 3033.77というばかげた 16 進エンコーディングでなければならないことがわかります。私が知りたいのは、アドビが人間が読めるはずのコードでそのようなものを使用しているのはなぜですか?

編集: 上記は間違っています。#BD9.4D の正しい結果は 3033.30078125 です。

>> (to integer! #{000BD94D}) / 256
== 3033.30078125

また、#19F.2 のような数値はバイナリ #{00019F20} であることにも注意してください。

S4タイプの値によると、これらは FLASH エディタの追加情報にすぎない可能性があります。手動で削除すると、ソースをロードでき、形状が同じになるためです。

于 2010-11-02T12:00:09.917 に答える