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

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

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

Регистрация: May 2008
Сообщений: 2
По умолчанию PV проблема с перезапуском меню

Сегодня столкнулся с проблемой перезагрузки меню на папервижине.

имеется собственно меню
Код:
import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.materials.*;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.display.Sprite;
import flash.events.MouseEvent;

var container:Sprite = new Sprite();
container.x = 512;
container.y = 420;
addChild(container);

var scene:Scene3D = new MovieScene3D(container);
var cam:Camera3D = new Camera3D();
cam.zoom = 6;

tn_title.text = "";
tn_desc.text = "";
tn_url.text = "";

var p_dict:Dictionary=new Dictionary();
var pc:Plane = new Plane();
pc.visible = false;
cam.target = pc;

var numOfRotations:Number = 3;
var yPos:Number = 0;
var angle:Number = 0;

var filename_list = new Array();
var url_list = new Array();
var url_target_list:Array = new Array();
var title_list = new Array();
var description_list = new Array();
var folder:String = "thumbnails/";

var i:Number;
var j:Number = 0;
var k:Number = 0;
var l:Number = 0;
var m:Number = 0;
var total:Number;
var flashmo_xml:XML = new XML();
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("thumbnail_list_3.xml"));
loader.addEventListener(Event.COMPLETE, create_thumbnail);

function create_thumbnail(e:Event):void 
{
	flashmo_xml = XML(e.target.data);
	total = flashmo_xml.thumbnail.length();
	var anglePer:Number = ((Math.PI*2) * numOfRotations) / total;
	
	for( i = 0; i < total; i++ )
	{
		url_list.push( flashmo_xml.thumbnail[i].@url.toString() );
		url_target_list.push( flashmo_xml.thumbnail[i].@target.toString() );
		title_list.push( flashmo_xml.thumbnail[i].@title.toString() );
		description_list.push( flashmo_xml.thumbnail[i].@description.toString() );
		
		var bfm:BitmapFileMaterial = new BitmapFileMaterial(
			folder + flashmo_xml.thumbnail[i].@filename.toString());
		bfm.oneSide = false;
		bfm.smooth = true;
		var p:Plane = new Plane(bfm, 140, 105, 2, 2);
		scene.addChild(p);
		var p_container:Sprite = p.container;
		p_container.name = "flashmo_" + i;
		p_dict[p_container] = p;
		p_container.buttonMode = true;
		p_container.addEventListener( MouseEvent.ROLL_OVER, p_rollover );
		p_container.addEventListener( MouseEvent.ROLL_OUT, p_rollout );
		p_container.addEventListener( MouseEvent.CLICK, p_click );
		
		p.rotationY = (-i*anglePer) * (180/Math.PI) + 90;
		p.x = Math.cos(i * anglePer) * 480;
		p.z = Math.sin(i * anglePer) * 480;
		p.y = yPos;

		if( (i+1) % 20 == 0 )
		{
			 yPos += 115;
		}
	}
}

function p_rollover(me:MouseEvent) 
{
	var sp:Sprite = me.target as Sprite;
	var tw:Tween = new Tween(sp, 'alpha', Strong.easeOut, 1, 0.5, 0.6, true);
	var s_no:Number = parseInt(sp.name.slice(8,10));
	tn_title.text = title_list[s_no];
	tn_desc.text = description_list[s_no];
	tn_url.text = url_list[s_no];
}
function p_rollout(me:MouseEvent) 
{
	var sp:Sprite = me.target as Sprite;
	var tw:Tween = new Tween(sp, 'alpha', Strong.easeOut, 0.5, 1, 0.6, true);
	tn_title.text = "";
	tn_desc.text = "";
	tn_url.text = "";
}
function p_click(me:MouseEvent) 
{
	var sp:Sprite = me.target as Sprite;
	var s_no:Number = parseInt(sp.name.slice(8,10));
	navigateToURL(new URLRequest(url_list[s_no]), url_target_list[s_no]);
}

addEventListener(Event.ENTER_FRAME, render);

function render(e:Event):void
{
	var dist2:Number = ((stage.mouseX) - 400) * 0.0001;
	angle += dist2;
	cam.x = - Math.cos(angle) * 150;
	cam.z = Math.sin(angle) * 150;
	var new_zoom = 8.5 - stage.mouseY * 0.008; 
	cam.zoom += ( new_zoom - cam.zoom ) * 0.06;
	scene.renderCamera(cam);
}
оно размещено на отдельной сцене, на него ведет кнопка спервой сцены со следующим кодом:

Код:
stop();

Menu_button.addEventListener(MouseEvent.CLICK, startMenu);


function startMenu(event:MouseEvent):void
{ this.gotoAndStop(1,"Scene 30");
}
собственно загрузка меню происходит корректно все вертится крутится и работают переходы по ссылкам, но мне нужно чтобы оно закрывалось при нажатии на кнопку закрыть меню, вот ее код:

Код:
stop();

Menu_button.addEventListener(MouseEvent.CLICK, startMenu1);



function startMenu1(event:MouseEvent):void
{
removeEventListener(Event.COMPLETE, create_thumbnail);
removeEventListener( MouseEvent.ROLL_OVER, p_rollover );
removeEventListener( MouseEvent.ROLL_OUT, p_rollout );
removeEventListener( MouseEvent.CLICK, p_click );
removeEventListener(Event.ENTER_FRAME, render);
removeChild(container);
this.gotoAndStop(160,"Scene 1");
}
Меню гаснет все нормально переходит к нужному кадру, но при повторном открытии меню отображается не корректно, появляются пустые прямоугольники(в которых должны быть картинки) летают нормально, но они не линкабельны и в них нет картинок. Помогите пож-та разобраться с этой проблемой. У меня уже мозги высохли...

Может убиение меню надо производить какимто другим образом?
ЗЫ подскажите пож-та конкретно на этом примере, т.к. я неделю всего занимаюсь с Flesh

Старый 29.05.2008, 14:54
Pow R. Toc H. вне форума Посмотреть профиль Отправить личное сообщение для Pow R. Toc H. Найти все сообщения от Pow R. Toc H.
  № 2  
Ответить с цитированием
Pow R. Toc H.

Регистрация: Nov 2006
Сообщений: 176
Я знаю что при добавлении на сцену нового элемента можно указать его имя:
scene.addChild(fig, name);
..а потом можно удалить по этому имени...
scene.removeChildByName(name);

Старый 29.05.2008, 16:10
Maniakus вне форума Посмотреть профиль Отправить личное сообщение для Maniakus Найти все сообщения от Maniakus
  № 3  
Ответить с цитированием
Maniakus

Регистрация: May 2008
Сообщений: 2
а можно по подробнее куда эти 2 строки вставить в мой код и что нужно из него убрать. Я еще очень плохо разбираюсь во всем этом...

Старый 29.05.2008, 16:37
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 4  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Maniakus, боюсь что в вашем коде их вставить некуда, потому как откуда эти 2 метода - вряд ли кому известно.

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

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

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


 


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


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