Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.03.2009, 14:36
3Desian вне форума Посмотреть профиль Отправить личное сообщение для 3Desian Найти все сообщения от 3Desian
  № 1  
Ответить с цитированием
3Desian
 
Аватар для 3Desian

Регистрация: Mar 2007
Сообщений: 142
Отправить сообщение для 3Desian с помощью ICQ
Tools Как выделить кликнутый объект

Код AS3:
package
{
        import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.filters.*;
	import org.papervision3d.core.geom.renderables.Vertex3D;
	import org.papervision3d.core.math.Number3D;
	import org.papervision3d.core.math.Plane3D;
	import org.papervision3d.events.InteractiveScene3DEvent;
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.*;
	import org.papervision3d.materials.shadematerials.*;
	import org.papervision3d.materials.utils.*;
	import org.papervision3d.objects.primitives.*;
	import org.papervision3d.view.BasicView;
 
	[SWF(width="640", height="480", backgroundColor="#444499", frameRate="60")]
	public class SelectObject extends BasicView
	{
private var NUM_OBJ:int = 4; // кол-во объектов
private var Moveing_OBJ:Cube;
//GLOW FILTER для обозначения выделенного объекта
private var glowB:GlowFilter = new GlowFilter(0x00ff00,1,20,20);
 
public function SelectObject()
		{
			viewport.interactive = true;
 
			addEventListener(Event.ENTER_FRAME,onEnterFrame);
			camera.y = 1000;
			camera.x = 500;
/МАССИВ ОБЪЕКТОВ		
			for(var i:int = 0; i < NUM_OBJ; i++)
			{	//Материал объекта
 
			var ArrowX_Mat = new GouraudMaterial(light, 0x990000, 0x440000);
			var ArrowY_Mat = new GouraudMaterial(light, 0x009900, 0x004400);
			var ArrowZ_Mat = new GouraudMaterial(light, 0x000099, 0x000044);
 
			ArrowX_Mat.interactive=true;
			ArrowY_Mat.interactive=true;
			ArrowZ_Mat.interactive=true;
 
				var materialList:MaterialsList = new MaterialsList({
				front:ArrowZ_Mat, left:ArrowX_Mat,right:ArrowX_Mat,back:ArrowZ_Mat,top:ArrowY_Mat,bottom:ArrowY_Mat });
 
				//Объект				
				var Object:Cube= new Cube(materialList,100,100,100,2,2,2);
				Object.x = (i - NUM_OBJ/2) * 200;
				Object.y=i*100;
				Object.filters=[glowB];
 
				scene.addChild(Object);
 
				//Событие объекта
				Object.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, objectPressHandler);
 
			}
//МАССИВ ОБЪЕКТОВ//	
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
 
startRendering(); 	
		}
private function objectPressHandler(event:InteractiveScene3DEvent):void
		{
 
			Moveing_OBJ = event.displayObject3D as Cube; 
 
			Object.useOwnContainer = false;// ТУТ РУГАЕТСЯ "Severity and Description	Path	Resource	Location	Creation Time	Id
1119: Access of possibly undefined property useOwnContainer through a reference with static type Class.	Mouse3DFloor	Mouse3DFloor.as	line 96	1237889840812	825
font>"
//Видимо что то нужно тут написать, что бы при клике на всех объектах кроме кликнутого было FALSE.
 
			Moveing_OBJ.useOwnContainer = true;// есть подсветка. т.е. выделен объект этот
}
override protected function onRenderTick(event:Event=null):void
		{
renderer.renderScene(scene, camera, viewport);
		}
	}
}
Приветствую всех. Вот код. Как то нужно сделать , что бы только кликнутый объект подсвечивался, а остальные при этом гасли. Кто подскажет, что вписать. Я не могу сообразить.

Старый 24.03.2009, 14:46
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Храните ссылку на текущий выбранный объект. При выборе нового, снимайте селект со старого и сохраняйте ссылку на новый.

Старый 24.03.2009, 15:06
3Desian вне форума Посмотреть профиль Отправить личное сообщение для 3Desian Найти все сообщения от 3Desian
  № 3  
Ответить с цитированием
3Desian
 
Аватар для 3Desian

Регистрация: Mar 2007
Сообщений: 142
Отправить сообщение для 3Desian с помощью ICQ
Спасибо.
Я так примерно и представлял себе, но думал, может есть ещё вариант.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:00.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.