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

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

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

Регистрация: May 2010
Сообщений: 24
По умолчанию Массив ссылок и навигация

есть динамическое текстовое поле в котрое подгружается текст из html кода страниц. Также есть кнопка "содержание" и кнопки "листать вперед и назад".
Так вот подскажите как сделать так,чтобы после того как я перейду по ссылке со страницы содержание на какую нить 25 страницу, и нажав "вперед" - флеш не перекидывал меня снова на самую первую страницу???


Так вот как мне подсказали это надо сделать с массивом, вот что вышло: (это уже с массивом код,но нехрена не работает)

Код AS3:
import flash.events.Event;
import flash.net.URLRequest;
//ссылки на страницы
 
var request00:URLRequest = new URLRequest("priv.html");
var request01:URLRequest = new URLRequest("text0.html");
var request02:URLRequest = new URLRequest("text1.html");
var request03:URLRequest = new URLRequest("text2.html");
var request04:URLRequest = new URLRequest("text3.html");
 
//создаем объект-загрузчик
 
var pages:Array = new Array("text0.html");// создаем массив, первый элемент вписываем
 
var loader1:URLLoader = new URLLoader(); 
//грузим в него титульную страницу, которая будет отображаться при запуске приложения
loader1.load(request00);
//слушаем, когда загрузка окончится
loader1.addEventListener(Event.COMPLETE, requestComplete1); 
//при нажатии данных кнопок выполняется переход по страницам вперед и назад
but1.addEventListener(MouseEvent.CLICK, onClickForward);
but2.addEventListener(MouseEvent.CLICK, onClickBack);
 
var i:uint = 1;
 
function onClickForward(e:MouseEvent):void
{
   i += 1;
   if (i > 4)
   {
      i = 4;
   }
   var url:URLRequest = new URLRequest(String("text" + String(i) + ".html"));
  // loader1.unload();
   loader1.load(url);
   loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
 
function onClickBack(e:MouseEvent):void
{
   i -= 1;
   if (i <= 0)
   {
	        i = 1;
   }
   var url:URLRequest = new URLRequest(String("text" + String(i) + ".html"));
   //loader1.unload();
   loader1.load(url);
   loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
 
function clickHandler(e:TextEvent):void {
//e.text - содержание ссылки
loader1.load(new URLRequest(e.text));
pages.push(e.text);
}
 
function goBack(e:MouseEvent):void{
pages[pages.length-2]
loader1.load(new URLRequest(String(pages[pages.length-2])));
loader1.addEventListener(Event.COMPLETE, requestComplete1);
pages.push(pages[pages.length-2]);
 
 
}
//по окончании загрузки   
function requestComplete1(e:Event):void{
   //отображаем загруженный текст в текстовом поле
   output_txt.htmlText = e.target.data;
   }
Помогите,что здесь исправить нужно?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Может начать писать в классах? Сайт это не мультик, и даже не банер.. как можно строить приложение - в кадрах?? Налицо беспорядок с видимостью переменных.
__________________
Reality.getBounds(this);

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

Регистрация: May 2010
Сообщений: 24
я не сайт делаю..а эл.учебник как бэ... я знаю что беспорядок,но у меня нет времени практически изучат ьскрит,так как диплом сдавать через неделю( .. поэтому и прошу помочь...


Последний раз редактировалось palaten4iko; 15.05.2010 в 16:42.
Старый 15.05.2010, 17:31
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если я правильно понял (что затруднительно - по два обработчика непонятно чего, что такое кликХендлер, что такое гоБэк и кликБэк хендлеры.. Вы бы объясняли, мы ж не телепаты), Вам надо при клике в "содержании" задать значение для i (назовите свойства говорящими именами - самому же легче будет). Оно ведь по-умолчанию 0, и когда кликаете дальше - он и листает дальше. Т.е. кликнули 25-ю страницу - надо задать что i = 25. А уж где у Вас обработчик кликов "содержание" - я понятия не имею.
__________________
Reality.getBounds(this);

Старый 15.05.2010, 19:42
palaten4iko вне форума Посмотреть профиль Отправить личное сообщение для palaten4iko Найти все сообщения от palaten4iko
  № 5  
Ответить с цитированием
palaten4iko

Регистрация: May 2010
Сообщений: 24
ээм... я сам честно с трудом понимаю этот массив,потмоу что не я его писал.. только остальное в коде могу разьяснить...


функции onClickForward и onClickback это как раз листание страниц учебника вперед и назад...

вот код без массива вабще,полностью рабочий,который как раз просто листает страницы:

Код AS3:
import flash.events.Event;
import flash.net.URLRequest;
//ссылки на страницы
 
var request00:URLRequest = new URLRequest("priv.html");
var request01:URLRequest = new URLRequest("text0.html");
var request02:URLRequest = new URLRequest("text1.html");
var request03:URLRequest = new URLRequest("text2.html");
var request04:URLRequest = new URLRequest("text3.html");
 
//создаем объект-загрузчик
 
var loader1:URLLoader = new URLLoader(); 
//грузим в него титульную страницу, которая будет отображаться при запуске приложения
loader1.load(request00);
//слушаем, когда загрузка окончится
loader1.addEventListener(Event.COMPLETE, requestComplete1); 
//при нажатии данных кнопок выполняется переход по страницам вперед и назад
but1.addEventListener(MouseEvent.CLICK, onClickForward);
but2.addEventListener(MouseEvent.CLICK, onClickBack);
 
var i:uint = 1;
 
function onClickForward(e:MouseEvent):void
{
   i += 1;
   if (i > 4)
   {
      i = 4;
   }
   var url:URLRequest = new URLRequest(String("text" + String(i) + ".html"));
  // loader1.unload();
   loader1.load(url);
   loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
 
function onClickBack(e:MouseEvent):void
{
   i -= 1;
   if (i <= 0)
   {
	        i = 1;
   }
   var url:URLRequest = new URLRequest(String("text" + String(i) + ".html"));
   //loader1.unload();
   loader1.load(url);
   loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
 
 
 
 
 
 
}
//по окончании загрузки   
function requestComplete1(e:Event):void{
   //отображаем загруженный текст в текстовом поле
   output_txt.htmlText = e.target.data;
   }
А вот код как раз страницы "содержание", ну тоесть кароче ссылки на главы (страницы) учебника:

Код AS3:
import flash.events.Event;
import flash.net.URLRequest;
//ссылки на разделы
var requestSod:URLRequest = new URLRequest("Sod.html");
 
//создаем объект-загрузчик
var loaderSod:URLLoader = new URLLoader(); 
 
//при нажатии данных кнопок выполняются определенные функции, в данном случае происходит загрузка страницы
sod_btn.addEventListener(MouseEvent.CLICK, onClickSod);
 
 
output_txt.addEventListener(TextEvent.LINK,_onTxtLinkSelected);
 
//сами функции, 
function onClickSod(e:MouseEvent):void{
 
	loaderSod.load(requestSod);//грузим первую страницу
	loaderSod.addEventListener(Event.COMPLETE, requestCompl);//ждем окончания загрузки
 
	}
 
 
 
 
 function _onTxtLinkSelected(e:TextEvent):void{
     var url:URLRequest = new URLRequest(e.text);
     loader1.load(url);
     loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
	//по окончании загрузки	
function requestCompl(e:Event):void{
	//отображаем загруженный текст в текстовом поле
	output_txt.htmlText="<a href='event:text0.html'>первая</a>"+
      "<br><a href='event:text1.html'>вторая</a>"+
      "<br><a href='event:text2.html'>третья</a>"+
      "<br><a href='event:text3.html'>четвертая</a>";
 
 
}
в нём я вабще незнаю что добавлять..

Старый 15.05.2010, 20:05
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 6  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Я не знаю будет ли работать так, потому что мне не понятно взаимодействие между собой двух кусков кода.

Код AS3:
import flash.events.Event;
import flash.net.URLRequest;
//ссылки на страницы
 
//var request00:URLRequest = new URLRequest("priv.html");
//var request01:URLRequest = new URLRequest("text0.html");
//var request02:URLRequest = new URLRequest("text1.html");
//var request03:URLRequest = new URLRequest("text2.html");
//var request04:URLRequest = new URLRequest("text3.html");
 
var requests:Array=["priv.html","text0.html","text1.html","text2.html","text3.html"];
 
//создаем объект-загрузчик
 
var loader1:URLLoader = new URLLoader(); 
//грузим в него титульную страницу, которая будет отображаться при запуске приложения
loader1.load(request00);
//слушаем, когда загрузка окончится
loader1.addEventListener(Event.COMPLETE, requestComplete1); 
//при нажатии данных кнопок выполняется переход по страницам вперед и назад
but1.addEventListener(MouseEvent.CLICK, onClickForward);
but2.addEventListener(MouseEvent.CLICK, onClickBack);
 
var i:uint = 1;
 
function onClickForward(e:MouseEvent):void
{
   i += 1;
   if (i > 4)
   {
      i = 4;
   }
   var url:URLRequest = new URLRequest(requests[i]);
  // loader1.unload();
   loader1.load(url);
   loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
 
function onClickBack(e:MouseEvent):void
{
   i -= 1;
   if (i <= 0)
   {
	        i = 1;
   }
   var url:URLRequest = new URLRequest(requests[i]);
   //loader1.unload();
   loader1.load(url);
   loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
 
 
 
 
 
 
}
//по окончании загрузки   
function requestComplete1(e:Event):void{
   //отображаем загруженный текст в текстовом поле
   output_txt.htmlText = e.target.data;
   }
Код AS3:
import flash.events.Event;
import flash.net.URLRequest;
//ссылки на разделы
var requestSod:URLRequest = new URLRequest("Sod.html");
 
//создаем объект-загрузчик
var loaderSod:URLLoader = new URLLoader(); 
 
//при нажатии данных кнопок выполняются определенные функции, в данном случае происходит загрузка страницы
sod_btn.addEventListener(MouseEvent.CLICK, onClickSod);
 
 
output_txt.addEventListener(TextEvent.LINK,_onTxtLinkSelected);
 
//сами функции, 
function onClickSod(e:MouseEvent):void{
 
	loaderSod.load(requestSod);//грузим первую страницу
	loaderSod.addEventListener(Event.COMPLETE, requestCompl);//ждем окончания загрузки
 
	}
 
 
 
 
 function _onTxtLinkSelected(e:TextEvent):void{
     i=requests.indexOf(String(e.text));
     var url:URLRequest = new URLRequest(e.text);
     loader1.load(url);
     loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
	//по окончании загрузки	
function requestCompl(e:Event):void{
	//отображаем загруженный текст в текстовом поле
	output_txt.htmlText="<a href='event:text0.html'>первая</a>"+
      "<br><a href='event:text1.html'>вторая</a>"+
      "<br><a href='event:text2.html'>третья</a>"+
      "<br><a href='event:text3.html'>четвертая</a>";
 
 
}


Последний раз редактировалось incvizitor; 15.05.2010 в 20:07.
Старый 15.05.2010, 20:28
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Добавьте ссылки на все страницы в массив, а в содержании - в event только индекс массива, по которому находится ссылка на эту страницу.

Код AS3:
import flash.events.Event;
import flash.net.URLRequest;
//ссылки на страницы
var pages:Array = ["priv.html", "text0.html", text1.html, "text2.html", "text3.html"];
 
//создаем объект-загрузчик
var loader1:URLLoader = new URLLoader(); 
//грузим в него титульную страницу, которая будет отображаться при запуске приложения
loader1.load(new URLRequest(pages[0]));
var i:uint = 0;
//слушаем, когда загрузка окончится
loader1.addEventListener(Event.COMPLETE, requestComplete1); 
//при нажатии данных кнопок выполняется переход по страницам вперед и назад
but1.addEventListener(MouseEvent.CLICK, onClickForward);
but2.addEventListener(MouseEvent.CLICK, onClickBack);
 
 
function onClickForward(e:MouseEvent):void
{
   i = Math.min(i + 1, 3);
   var url:URLRequest = new URLRequest(pages[i]);
   loader1.load(url);
   loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
 
function onClickBack(e:MouseEvent):void
{
   i = Math.max(i - 1, 0);
   var url:URLRequest = new URLRequest(pages[i]);
   //loader1.unload();
   loader1.load(url);
   loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
 
function clickHandler(e:TextEvent):void {
//e.text - содержание ссылки
loader1.load(new URLRequest(pages[Number(e.text)]));
}
/* не знаю что это.
function goBack(e:MouseEvent):void{
loader1.load(new URLRequest(String(pages[pages.length-2])));
loader1.addEventListener(Event.COMPLETE, requestComplete1);
pages.push(pages[pages.length-2]);
 
 
}*/
//по окончании загрузки   
function requestComplete1(e:Event):void{
   //отображаем загруженный текст в текстовом поле
   output_txt.htmlText = e.target.data;
   }


Код AS3:
 function _onTxtLinkSelected(e:TextEvent):void{
      i = Number(e.text);
      var url:URLRequest = new URLRequest(pages[i]);
      loader1.load(url);
      loader1.addEventListener(Event.COMPLETE, requestComplete1);
}
	//по окончании загрузки	
function requestCompl(e:Event):void{
	//отображаем загруженный текст в текстовом поле
	output_txt.htmlText=
            "<a href='event:0'>первая</a>"+
      "<br><a href='event:1'>вторая</a>"+
      "<br><a href='event:2'>третья</a>"+
      "<br><a href='event:3'>четвертая</a>";
}
__________________
Reality.getBounds(this);

Старый 15.05.2010, 21:01
palaten4iko вне форума Посмотреть профиль Отправить личное сообщение для palaten4iko Найти все сообщения от palaten4iko
  № 8  
Ответить с цитированием
palaten4iko

Регистрация: May 2010
Сообщений: 24
Wolsh спасибо огроменное вам!!! очень помогли,работает как надо!!!

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

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

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


 


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


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