Показать сообщение отдельно
Старый 28.02.2011, 10:01
cr0w312 вне форума Посмотреть профиль Отправить личное сообщение для cr0w312 Найти все сообщения от cr0w312
  № 10  
Ответить с цитированием
cr0w312
 
Аватар для cr0w312

Регистрация: Mar 2009
Адрес: this.x=0;this.y=0;this.z=0
Сообщений: 89
в PV3D свои ивенты. для их рвботы надо выполнить несколько условий
1 - интерактивный вьюпорт
Код AS3:
         viewport.interactive = true;
2 - интерактивный материал
Код AS3:
         myMaterial.interactive = true;
3 - прицеп слушателя к 3D объекту
Код AS3:
    import org.papervision3d.events.InteractiveScene3DEvent;
    ....
       var plane:Plane = new Plane(myInteractiveMaterial, 300, 300, 3, 3);
       plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, planeMouseOver);
    ....
      Private function planeMouseOver(e:InteractiveScene3DEvent):void{
             e.displayObject3D..localRotationY += 10;
      }
есть и другой способ - зашить спрайт(в данном случае кнопка с именем "btn") в мувик с именем, в данном случае - "material"
Код AS3:
import org.papervision3d.materials.MovieAssetMaterial;
         ....
         viewport.interactive = true;
         var material:MovieAssetMaterial = new MovieAssetMaterial("material",false,true,false,true);
         material.interactive = true;
 
			MovieClip(MovieClip(material.movie).getChildByName("btn")).mouseChildren = false;
			MovieClip(material.movie).getChildByName("btn").addEventListener(MouseEvent.CLICK,click);
			MovieClip(material.movie).getChildByName("btn").addEventListener(MouseEvent.MOUSE_OVER,mouseOver);
			MovieClip(material.movie).getChildByName("btn").addEventListener(MouseEvent.MOUSE_OUT,mouseOut);
         private function click(e:MouseEvent):void
		{
			var buttonText:TextField = MovieClip(e.target).getChildByName("label") as TextField;
			switch(buttonText.text)
			{
				case "start":
					buttonText.text = "stop";
					MovieClip( MovieClip(e.target).parent ).play();
				break;
				default:
					buttonText.text = "start";
					MovieClip( MovieClip(e.target).parent ).stop();
			}
		}
 
		private function mouseOver(e:MouseEvent):void
		{
			viewport.buttonMode = true;
		}
 
		private function mouseOut(e:MouseEvent):void
		{
			viewport.buttonMode = false;
		}
вот примерно так


Последний раз редактировалось cr0w312; 28.02.2011 в 14:19.