0

Papervision3DのScrollPaneコンポーネントに大きな問題があります。この問題は、さまざまなフォーラムのカップルで育ったが、解決していないされていますPapervision3DのScrollPane

私は動的のScrollPaneを作成するだけでなく、ステージ上に1をドラッグしようとしていますPaperVision3D環境のMovieClipに追加すると、デフォルトサイズ(100,100)で常に表示されます。私はTweenにそのサイズで作業させることさえできません。

答えて

1

[OK]をクリックします。

私はMovieAssetMaterialで動作させようとしましたが、運はありません。 MovieAssetMaterial内でステージをトレースすると、ステージはnullになります。そのため、スクロールペインが正しく動作しないのはなぜかと思います。それはコンテナなので、適切に設定する段階が必要です。

私は、スクロールペイン200x200をペーパービジョンプレーンで取得し、対処法のビットを使用して対話しました。ここに私のコードは次のとおりです。

package{ 

    import org.papervision3d.*; 
    import org.papervision3d.view.*; 
    import org.papervision3d.cameras.*; 
    import org.papervision3d.materials.*; 
    import org.papervision3d.objects.*; 
    import org.papervision3d.objects.primitives.*; 
    import org.papervision3d.scenes.*; 
    import org.papervision3d.render.*; 

    import flash.display.*; 
    import flash.events.*; 

    import fl.controls.*; 
    import fl.containers.*; 

    public class PV3DScrollPane extends MovieClip{ 

     private var viewport:Viewport3D; 
     private var camera:Camera3D; 
     private var scene:Scene3D; 
     private var renderer:BasicRenderEngine; 
     private var plane:Plane; 

     public function PV3DScrollPane(){ 
      init3D(); 
     } 

     private function init3D():void 
     {  
      //setup 3d 
      viewport = new Viewport3D(1024, 768, false, true); 
      addChild(viewport); 
      camera = new Camera3D(); 
      camera.z = -500; 
      camera.zoom = 1; 
      camera.focus = 500; 
      camera.target = DisplayObject3D.ZERO; 
      scene = new Scene3D(); 
      renderer = new BasicRenderEngine(); 
      //setup plane 
      plane = makePlane(); 
      stage.addEventListener(Event.ENTER_FRAME, loop); 
     } 

     public function makePlane():Plane 
     { 
      //setup scroll pane 
      var sp:ScrollPane = new ScrollPane(); 
      addChild(sp); 
      sp.x = 1000;//hide it off stage, visible doesn't help much 
      sp.source = 'http://www.helpexamples.com/flash/images/image1.jpg'; 
      sp.setSize(200, 200); 
      //setup material & plane 
      var mat:MovieMaterial = new MovieMaterial(sp, false, true, false); 
      mat.interactive = true; 
      var plane:Plane = new Plane(mat, 0, 0, 10, 10); 
      scene.addChild(plane); 
      return plane; 
     } 

     private function loop(evt:Event):void 
     { 
       //plane.rotationY++; 
       renderer.renderScene(scene, camera, viewport); 
     } 
    } 
} 

と説明: 私はBasicViewを使用してみましたが、私はオールドスクールシーンを作成する方法、カメラ、レンダリングされたビューポートを使用するので、私は同じ結果を得ることができませんでした。 ScrollPaneにステージが必要なので、ステージに追加してからサイズを設定しました。 私はScrollPaneを使ってMovieMaterialを作成し、対話性をtrueに設定しました。 私はステージから外すことによってコンポーネントを隠しました。表示をfalseに設定すると100x100の問題に戻ります。

私はpapervisionで使用するUIコンポーネントを思い出したので、私は少しGoogleを使いました。そしてそれは事実である、彼らはを働かせた。 Hereは私が思い出した投稿です。 Blitz Agencyにも同様の投稿があります。 InteractiveMovieMaterial.asはGoogleであれば見つかるかもしれませんが、現在のバージョンのpapervisionでは動作しません。drawFace3Dメソッドがなくなったため、少し変化しました。修正を加えた後、この問題について新しい(2008)blog post on John Grden's websiteが見つかりました。このアプローチには類似点がありますが、私はまだその問題をすべて解決しませんでした。

希望すると便利です。

+0

ありがとうございます! John Grdenの記事は本当に助けになりました。 –

+0

クール!あなたがそれを整理してうれしい。私はものが動作しないときにそれがあなた自身のせいではない嫌い:) –

関連する問題