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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.01.2009, 22:31
rispekt вне форума Посмотреть профиль Отправить личное сообщение для rispekt Найти все сообщения от rispekt
  № 1  
Ответить с цитированием
rispekt

Регистрация: May 2007
Сообщений: 32
По умолчанию PaperVision 3D Карусель из картинок.

Здравствуйте!
Имеется вот такая карусель: http://theflashblog.com/?p=293

Код:
import org.papervision3d.scenes.*;
import org.papervision3d.objects.*;
import org.papervision3d.cameras.*;
import org.papervision3d.materials.*;
import caurina.transitions.*;

var numOfItems:int = 10;
var radius:Number = 800;
var anglePer:Number = (Math.PI*2) / numOfItems;
var dsf:DropShadowFilter = new DropShadowFilter(10, 45, 0x000000, 0.3, 6, 6, 1, 3);

var con:Sprite = new Sprite();
con.x = stage.stageWidth * 0.5;
con.y = stage.stageHeight * 0.5;
addChild(con);

var scene:MovieScene3D = new MovieScene3D(con);
var cam:Camera3D = new Camera3D();
cam.zoom = 2;

for(var i:uint=1; i<=numOfItems; i++)
{
	var bam:BitmapAssetMaterial = new BitmapAssetMaterial("s" + i);
	bam.oneSide = false;
	bam.smooth = true;
	var p:Plane = new Plane(bam, 162, 230, 2, 2);
	p.x = Math.cos(i*anglePer) * radius;
	p.z = Math.sin(i*anglePer) * radius;
	p.rotationY = (-i*anglePer) * (180/Math.PI) + 270;
	scene.addChild(p);
	p.container.filters = [dsf];
}

var angleX:Number = anglePer;
var dest:Number = 1;

right.addEventListener(MouseEvent.CLICK, moveRight);
left.addEventListener(MouseEvent.CLICK, moveLeft);
this.addEventListener(Event.ENTER_FRAME, render);

function moveRight(e:Event):void
{
	dest++;
	Tweener.addTween(this, {angleX:dest*anglePer, time:0.5});
}

function moveLeft(e:Event):void
{
	dest--;
	Tweener.addTween(this, {angleX:dest*anglePer, time:0.5});
}

function render(e:Event):void
{
	cam.x = Math.cos(angleX) * 1000;					 
	cam.z = Math.sin(angleX) * 1000;
	scene.renderCamera(cam);
}
Мне нужно сделать так, чтобы при нажатии на разные картинки происходили определенные действия.
Лучший вариант - это присвоить каждой картинке номер, на который будет реагировать функция обработки нажатия мышкой на картинку.
Подскажите, пожалуйста как это реализовать.
В чем трудности:
- Я плохо знаком с AS3
- Не совсем понимаю что представляют из себя контейнеры, в которые подгружаются картинки и какие действия можно с ними производить.

Максимум, чего у меня получилось добиться - это чтобы при нажатии на любую картинку происходило одно и то же

Прошу прощения, если ошибся с разделом.

Старый 03.01.2009, 02:14
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 2  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
http://silin.fatal.ru/#AS3/five3d/ring

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

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

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


 


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


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