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

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

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

Регистрация: Mar 2010
Сообщений: 2
По умолчанию Помогите с удалением контейнера в AS3

Здравствуйте, господа профессионалы.

Я не профессионал и поэтому не могу решить одну проблему. Делаю сайт с 3d фотогалереей. Когда захожу на страничку самой галереи, все хорошо, но когда хочу вернуться или перейти на другую страничку, а потом снова вернуться на страничку с галереей, то визуально создается ощущение что она накладывается сама на себя, и на экране видно месиво из фотографий, в общем абракадабра какая-то.

У меня есть подозрение что, я удалив контейнер, не сделал еще чего-то важного, поэтому и содержание галереии не исчезает, а появляется снова при повторном обращении к ней.

Помогите пожалуйста решить этот вопрос.

вот код с галереей:
Код AS3:
stop ();
 
import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.materials.*;
import caurina.transitions.*;
 
var container_x:Number = stage.stageWidth * 0.5;
var container_y:Number = stage.stageHeight * 0.5 + 160;
var container:Sprite = new Sprite();
container.x = container_x;
container.y = container_y;
addChild(container);
 
var scene:Scene3D = new MovieScene3D(container);
var cam:Camera3D = new Camera3D();
cam.zoom = 6;
 
 
loading_info.text = "";
 
 
var no_of_ring:Number = 3;
var angle:Number = 0;
var p_dict:Dictionary = new Dictionary();
var pa:Array = new Array();
var filename_list = new Array();
 
 
var folder:String = "PortfolioPhotos_Infop2/";
var i:Number;
var total:Number;
var flashmo_xml:XML = new XML();
var pic_loader:Loader = new Loader();
var xml_loader:URLLoader = new URLLoader();
xml_loader.load(new URLRequest("thumbnail_list_5.xml"));
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 angle_per:Number = Math.PI * 2 * no_of_ring / total;
 
	for( i = 0; i < total; i++ )
	{
		filename_list.push( flashmo_xml.thumbnail[i].@filename.toString() );
 
 
		var bfm:BitmapFileMaterial = new BitmapFileMaterial(
			folder + "s_" + flashmo_xml.thumbnail[i].@filename.toString());
 
		bfm.oneSide = false;
		bfm.smooth = true;
		var p:Plane = new Plane(bfm, 100, 100, 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 * angle_per) * (180/Math.PI) + 90;
		p.x = Math.cos(i * angle_per) * 300;
		p.z = Math.sin(i * angle_per) * 300;
		p.y = Math.floor( i / 18 ) * 105;
	}
}
 
function p_rollover(me:MouseEvent) 
{
	var sp:Sprite = me.target as Sprite;
	Tweener.addTween( sp, {alpha: 0.5, time: 0.4, transition:"easeOutExpo"} );
}
function p_rollout(me:MouseEvent) 
{
	var sp:Sprite = me.target as Sprite;
	Tweener.addTween( sp, {alpha: 1, time: 0.4, transition:"easeInExpo"} );
}
function p_click(me:MouseEvent) 
{
	var sp:Sprite = me.target as Sprite;
	var s_no:Number = parseInt(sp.name.slice(8,10));
 
 
 
	pic_loader.contentLoaderInfo.addEventListener(Event.OPEN, on_open);
	pic_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, on_progress);
	pic_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, on_pic_loaded);
	pic_loader.load(new URLRequest( folder + filename_list[s_no]));
 
	pic_loader.alpha = 0;
 
 
	Tweener.addTween( container, { y: 1200, time: 0.6, transition:"easeInExpo" } );
}
 
 
 
function on_open(e:Event):void 
{
	loading_info.text = "Loading... 0%";
}
function on_progress(e:ProgressEvent):void
{
	var percent:Number = Math.round(e.bytesLoaded / e.bytesTotal * 100);
	loading_info.text = "Loading... " + percent + "%";
}
function on_pic_loaded(e:Event):void
{
	loading_info.text = "";
 
 
	addChildAt(pic_loader, 1);
	pic_loader.x = Math.round(stage.stageWidth - pic_loader.width) * 0.5;
	pic_loader.y = Math.round(stage.stageHeight - pic_loader.height) * 0.5;
	pic_loader.addEventListener(MouseEvent.CLICK, remove_pic);
	Tweener.addTween( pic_loader, { alpha: 1, time: 0.8, transition:"easeInExpo" } );
	removeEventListener(Event.ENTER_FRAME, render);
}
function remove_pic(e:Event):void
{
	Tweener.addTween( pic_loader, { alpha: 0, time: 1, onComplete:function() { removeChild(this); } } );
	Tweener.addTween( container, { y: container_y, time: 1, delay: 1, transition:"easeOutExpo"} );
	addEventListener(Event.ENTER_FRAME, render);
 
 
}
addEventListener(Event.ENTER_FRAME, render);
function render(e:Event):void
{
	var distance_x:Number = (stage.mouseX - 400) * 0.0001;
	angle += distance_x;
	cam.x = - Math.cos(angle) * 150;
	cam.z = Math.sin(angle) * 150;
	scene.renderCamera(cam);
}
 
 
function goBt3(e:Event) //вот здесь я удаляю контейнер,но..//
{ 
    removeChild(container);
    this.gotoAndPlay (1);
}
 
bt3.addEventListener(MouseEvent.CLICK, goBt3);

Старый 31.03.2010, 15:34
Into the Dark вне форума Посмотреть профиль Отправить личное сообщение для Into the Dark Найти все сообщения от Into the Dark
  № 2  
Ответить с цитированием
Into the Dark

Регистрация: Feb 2010
Адрес: Красноярск
Сообщений: 21
Ну я так понимаю вы создали кнопку по нажатии которой должен удаляться контейнер?

Ну у вас же есть функция remove_pic почему нельяз чистить в ней?

Код AS3:
while (родитель.numChildren > 0) { 
              родитель.removeChi1dAt@); 
       }

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

Регистрация: Mar 2010
Сообщений: 2
Это кнопка-аналог кнопки назад. То есть при ее нажатии пользователь возвращается на страницу где может выбрать другую галерею или же снова войти в эту.

Прошу прощения, но так как я начинающий, то не могли бы вы подробней описать мне то, что делает фрагмент когда, который вы написали? И что в данном случае является "родителем"? Потому что я пока еще не разобрался с тем куда его вставлять и что именно вставлять в роли родителя.

Заранее спасибо.

Старый 01.04.2010, 17:38
Into the Dark вне форума Посмотреть профиль Отправить личное сообщение для Into the Dark Найти все сообщения от Into the Dark
  № 4  
Ответить с цитированием
Into the Dark

Регистрация: Feb 2010
Адрес: Красноярск
Сообщений: 21
Код AS1/AS2:
function goBt3(e:Event) //вот здесь я удаляю контейнер,но..//{ 
while (numChildren> 0){
        	removeChildAt(0);}
          this.gotoAndPlay (1);}
Попробуйте так

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

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

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


 


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


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