PerspectiveProjection

2009.2.3

自分が担当してるSWFがルート(stage直下のドキュメントクラス)として起動されるケースと、子として読まれるケースがある案件で、パースの見た目が異なってハマった。。PerspectiveProjectionがnullじゃないDisplayObjectがネストされたとき、どういう扱いになるんだろう??

3D使うのはそこだけだったので、addChildされたとき上方のperspectiveProjectionを全てnullにしつつ、ルートの表示オブジェクトのみ値を設定して結果を合わせた。けどなんか気持ち悪い。。

var o:DisplayObject = this;
while (o.parent != stage) {
  o.transform.perspectiveProjection = null;
  o = o.parent;
}

リキッドの場合は、プロジェクションセンターも更新しないと意図通りにならないかも・・。

private function onResize(evt:Event):void {
  var proj:PerspectiveProjection = root.transform.perspectiveProjection;
  var pt:Point = proj.projectionCenter;
  pt.x = stage.stageWidth * 0.5;
  pt.y = stage.stageHeight * 0.5;
  proj.projectionCenter = pt;
  root.transform.perspectiveProjection = proj;
}