DefineShape 和 PlaceObject2 进阶


DefineShape 和 PlaceObject2(2)

如果把方形放到舞台的坐标为(40,50):



编译为 SWF 生成的 PlaceObject2 tag,Matrix 将会是 TranslateX="800" TranslateY="1000":



PlaceObject2 里的 Matrix 平移单位是“twip”,1 twip = 0.05 像素(20 twips = 1 像素);
把方形的 x 设置为 40.08 将会自动变回 40.05:



如果给方形做一个 6 帧的从 x=40 到 x=90 的平移补间动画:



分析结构会发现不光关键帧,关键帧之间的补间帧也会分别生成 PlaceObject2:



第一个 PlaceObject2 会有 CharacterId=1 信息;
后续都不需要 CharacterId,同时 PlaceFlagMove=true,表示一直是用的 id=1 的 DefineShape;
TranslateX 从 800 twips(40 像素)递增到 1800 twips(90 像素),间隔 200 twips(10 像素)。

相关文件:https://github.com/zero-swf/SWFXML/tree/master/usage3