좋아, 여기 있습니다.
저는 MovieAssetMaterial에서 작동하도록 노력했습니다. 운이 없습니다. MovieAssetMaterial 내부에서 무대를 추적하면 무대가 null이며 스크롤바가 제대로 작동하지 않는 이유가 무엇인지 추측하고 있습니다. 컨테이너이기 때문에 제대로 설정해야합니다.
필자는 papervision 비행기에서 스크롤 창 200x200을 얻을 수 있었고 몇 가지 대안을 통해 대화식을 얻을 수있었습니다. 내가 BasicView를 사용하여 시도했다 ,하지만 난 장면, 카메라, 렌더링 뷰포트를 만드는 oldschool 방법을 사용 그래서 나는 같은 결과를 얻을 수 없습니다 :
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);
}
}
}
그리고 설명 : 여기에 내 코드입니다. ScrollPane에 스테이지가 필요하기 때문에 스테이지에 추가 한 다음 크기를 설정합니다. ScrollPane을 사용하여 MovieMaterial을 만들고 상호 작용을 true로 설정했습니다. 나는 무대 위에서 내려서 구성 요소를 숨겨 놨습니다. false로 설정하면 100x100 문제로 돌아 가게됩니다.
저는 페이퍼 비전 작업에 사용 된 UI 구성 요소를 기억하기 때문에 Google을 조금했습니다. 그리고 그것은 사실입니다. 을 사용하면을 사용할 수 있습니다. Here은 내가 기억하는 게시물입니다. Blitz Agency에도 비슷한 게시물이 있습니다. InteractiveMovieMaterial.as는 Google에서 찾을 수 있지만 더 이상 drawFace3D 메소드가 없기 때문에 현재 Papervision 버전에서는 작동하지 않습니다. 수정 한 후에이 문제점에 대한 최신 (2008) blog post on John Grden's website을 발견했습니다. 이 접근법에는 유사점이 있지만 아직 모든 문제를 해결하지 못했습니다.
희망이 도움이됩니다.
감사합니다. John Grden의 게시물이 실제로 도움이되었습니다. –
쿨! 다행 이군. 나는 일이 잘 안되고 네 잘못이 아닐 때가 싫다. :) –