Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Создание книги (http://www.flasher.ru/forum/showthread.php?t=184517)

Yulia_V 20.09.2012 17:07

Создание книги
 
Здравствуйте, мне нужно создать книгу с текстом, скажем примерно 100 страниц, и надо организовать переключение между ними. У кого-нибудь есть ссылки на уроки или информацию по этой теме?

in4core 20.09.2012 17:24

Если листочки переворачиваются ищите готовый flipBook в гугле. Если без переворота , а просто переключение. То вот схема :
1. Создаем xml
Цитата:

<book>
<list>text for list</list>
...
</book>
2. Создаем стрелочки для переключения назад-вперед
3. По нажатию на стрелочку вперед например увеличиваем итератор и достаем из xml нужный текст
4. Отображаем нужный текст на странице. ( кстати можно делать еще и подсветку через htmlText )

lisnic1990 20.09.2012 18:20

если делать подобно презентации, то есть уже готовый пример прямо во flash IDE шаблоны presentations, два варианта Simple и Advanced. А xml можно организовать как описано в предыдущем посте. Загружая xml, поместить все считанные строки в массив (либо в Vector, для оптимизации лучше, но работает только с 10-й версии флеш плеера) И по индексу этого массива соответственно отображайте нужную/ые страницы.

Yulia_V 20.09.2012 22:50

Спасибо, сам переключающийся текст я сделала. Но теперь у меня новая задача: надо сделать так, чтоб в зависимости от условия загружались разные XML файлы. Вставила urLлоудер прям в условие, подумала может прокатит - не прокатило, выдаёт ошибку, мол else не требуется. Подскажите пожалуйста что-нибудь.

in4core 20.09.2012 23:30

Цитата:

не прокатило, выдаёт ошибку, мол else не требуется.
Это гениально. Девушка - показывайте код!

Isfet 21.09.2012 05:43

если else не требуется, значит он не требуется, проверьте все условные операторы if...else значит где-то у вас фигурные скобки не в том месте стоят, или лишняя, или два else подряд идут... вариантов много

Yulia_V 21.09.2012 11:14

Надо чтоб это условие вызывало разные лоудеры (вместо текст1,2,3)
Код AS3:

stage. addEventListener (MouseEvent.MOUSE_MOVE,onMoseMove);
function onMoseMove (e:MouseEvent):void
{
 
var position:Number = qw_mc.x
 
if(position <= 0){
  text_txt.text="Текст 3"
}else if(position <= 550){
  text_txt.text="Текст 2";
}else if(position <= 1100){
  text_txt.text="Текст 1";
}
  e.updateAfterEvent()
 
}

Первый лоудер:
Код AS3:

import flash.events.MouseEvent;
 
var loader:URLLoader;
// ...
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, xmlLoaded);
var request:URLRequest = new URLRequest("text.xml");
loader.load(request);
//...
function xmlLoaded(event:Event):void {
var myXML:XML = new XML(loader.data);
var xmlList:XMLList = new XMLList (myXML.page.list);
//trace (myXML.page[0].list);
var i:Number = 0;
trace (xmlList[i]);
trace (xmlList.length());
textfield_txt.text = xmlList[i];
 
next_btn.addEventListener(MouseEvent.CLICK, onClick);
function onClick (e:MouseEvent):void
{
        i ++;
        textfield_txt.text = xmlList[i];
}
prev_btn.addEventListener(MouseEvent.CLICK, onClick2);
function onClick2 (e:MouseEvent):void
{
        i --;
        textfield_txt.text = xmlList[i];
}
}


Isfet 21.09.2012 12:22

Код AS3:

import flash.events.MouseEvent;
function setURLLoader(textName:String){
var loader:URLLoader;
// ...
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, xmlLoaded);
var request:URLRequest = new URLRequest(textName);
loader.load(request);
}
function xmlLoaded(event:Event):void {
var myXML:XML = new XML(loader.data);
var xmlList:XMLList = new XMLList (myXML.page.list);
//trace (myXML.page[0].list);
var i:Number = 0;
trace (xmlList[i]);
trace (xmlList.length());
textfield_txt.text = xmlList[i];
 
next_btn.addEventListener(MouseEvent.CLICK, onClick);
function onClick (e:MouseEvent):void
{
        i ++;
        textfield_txt.text = xmlList[i];
}
prev_btn.addEventListener(MouseEvent.CLICK, onClick2);
function onClick2 (e:MouseEvent):void
{
        i --;
        textfield_txt.text = xmlList[i];
}
}

Код AS3:

stage. addEventListener (MouseEvent.MOUSE_MOVE,onMoseMove);
function onMoseMove (e:MouseEvent):void
{
 
var position:Number = qw_mc.x
 
if(position <= 0){
    setURLLoader("text1.xml"){
}else if(position <= 550 && position >0){ 
    setURLLoader("text2.xml"){
// у вас условия одно включает другое  (0 и 550 тоже меньше 1000, и следовательно выполниться сразу 3 условия)
}else if(position <= 1100 && position >550){   
    setURLLoader("text3.xml"){
 }
  e.updateAfterEvent()
 
}

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

Yulia_V 21.09.2012 17:34

Спасибо, я попробую.
По поводу условий: на примере простого текста text_txt.text="Текст 1"; всё работает как надо. Про классы как раз собираюсь почитать) Ваш пример, как я поняла, надо делать с помощью классов?

Isfet 22.09.2012 09:06

нет, вместо вашего кода вставьте мой


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

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