Работа с текстом в flash

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Sergoi
Сообщения: 21
Зарегистрирован: 21 авг 2011, 05:16

Работа с текстом в flash

Сообщение Sergoi »

Помогите пожалуйста! Для начала объясню ситуацию... У меня например 3 окна (т.е. экрана gotoAndstop();) на каждом окне разный текст (т.е. 3 текста). Как сделать так чтобы не заходить каждый раз в исходник и менять текст? Может как-то подключить xml или еще что-то?
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Работа с текстом

Сообщение sasha^ »

конечно можно... xml flash поддерживает на ура :)
DDer
Сообщения: 31
Зарегистрирован: 14 апр 2013, 21:11

Re: Работа с текстом в flash

Сообщение DDer »

Из простого текстового файла

Код: Выделить всё

stop();var text1:String;var text2:String;var text3:String; var req:URLRequest = new URLRequest("1.txt");var loader = new URLLoader();loader.dataFormat = URLLoaderDataFormat.VARIABLES;loader.addEventListener(Event.COMPLETE, onLoaded);loader.load(req);function onLoaded (e:Event){        text1=loader.data.mytext1;    text2=loader.data.mytext2;    text3=loader.data.mytext3; } 
1.txt

Код: Выделить всё

mytext1=Первый текст&mytext2=Второй текст&mytext3=Третий текст
Вот написал этот пример:
http://yadi.sk/d/iw-k7HgrBdP8e
Sergoi
Сообщения: 21
Зарегистрирован: 21 авг 2011, 05:16

Re: Работа с текстом в flash

Сообщение Sergoi »

DDer, спасибо! Скажи еще пожалуйста, в какой версии adobe flash ты работаешь, просто у меня cs4 и когда открыл твой файл, у меня выдало ошибку непредвиденный формат... И можешь подсказать, вот так же текстом, как можно сделать чтобы текст обновлялся, например (сегодня один текст, завтра другой, после завтра другой)
DDer
Сообщения: 31
Зарегистрирован: 14 апр 2013, 21:11

Re: Работа с текстом в flash

Сообщение DDer »

Я использую CS5
И так -
завтра другой
тебе нужен случайный вывод или последовательный?

Если тебе нужна просто логика изменения каждый день чего либо а не полный готовый пример тогда вот:

Тот же пример но с вставкой кода который каждый день начиная с сегодня будет будет брать разные txt файлы 1.txt 2.txt 3.txt и т д и он никогда не остановиться, на год тебе понадобится 365 txt файлов :D

Код: Выделить всё

stop();var Bnowmil2:Date;Bnowmil2=new Date();var BDateMsec2=Bnowmil2.getTime();var BNsecs1=Math.floor(BDateMsec2/1000);var BNsecs2=Math.floor(BNsecs1/60);var BNsecs3=Math.floor(BNsecs2/60);var BNsecs4=Math.floor(BNsecs3/24);var sut:int=int(BNsecs4)-16004;var newD:String=String(sut)+".txt"; var text1:String;var text2:String;var text3:String; var req:URLRequest = new URLRequest(newD);var loader = new URLLoader();loader.dataFormat = URLLoaderDataFormat.VARIABLES;loader.addEventListener(Event.COMPLETE, onLoaded);loader.load(req);function onLoaded (e:Event){        text1=loader.data.mytext1;    text2=loader.data.mytext2;    text3=loader.data.mytext3;    textA.text=text1;} 
Вот пример так же на cs5(
http://yadi.sk/d/z9t1bh0-BdgxR

Если что пиши что нужно подробно(напишу под тебя) и смени свой CS4 :D
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Работа с текстом в flash

Сообщение sasha^ »

Вот пример так же на cs5(
http://yadi.sk/d/z9t1bh0-BdgxR

Если что пиши что нужно подробно(напишу под тебя) и смени свой CS4 :D
сейчас уже есть cs6, намного удобнее... лучше его уж качать :) (cs5 он тоже поддерживает)
Тот же пример но с вставкой кода который каждый день начиная с сегодня будет будет брать разные txt файлы 1.txt 2.txt 3.txt и т д и он никогда не остановиться, на год тебе понадобится 365 txt файлов :D
полная бредятина :)
лучше работать с xml(проще обращаться, больше возможностей):

Код: Выделить всё

import flash.net.URLLoader;import flash.net.URLRequest;import flash.events.Event; //писал на временной диаграмме, поскольку вижу вы все так пишете.... // нужное количество блоков текста...var needNums:int = 3;var loadedText:XML;var loader:URLLoader = new URLLoader();loader.addEventListener(Event.COMPLETE, onLoaded);loader.load(new URLRequest("text.xml")); function onLoaded(e:Event):void {    loadedText = new XML(loader.data);    // получим массив из needNums не повторяющихся! элементов...    var randoms:Array = randomNums();    // теперь мы можем вывести, что получилось или куда там нужно применить    trace(loadedText.*[randoms[0]]);    trace(loadedText.*[randoms[1]]);    trace(loadedText.*[randoms[2]]);} function randomNums():Array {    var max:int = loadedText.children().length()-1;    var arr:Array = new Array();    while(arr.length < needNums) {        var gen:int = generate();        if(noneInArray(gen)) arr.push(gen);    }    function generate():int {        return Math.round(Math.random()*max);    }    function noneInArray(gen:int):Boolean {        return arr.indexOf(gen) == -1 ? true : false;    }    return arr;}
text.xml:

Код: Выделить всё

<text>    <block>    Текст 1...    </block>    <block>    Текст 2...    </block>    <block>    Текст 3...    </block>    <block>    Текст 4...    </block>    <block>    Текст 5...    </block></text>
в нем можно сколько угодно добавлять элементов <block></block>, а скрипт автоматически будет выводить каждый раз рандомно 3(или другое количество, если изменить по-желанию)...
Sergoi
Сообщения: 21
Зарегистрирован: 21 авг 2011, 05:16

Re: Работа с текстом в flash

Сообщение Sergoi »

sasha^, а как сделать не рандомно, 1 блок в например вышел 17 числа, 2 блок 18 числа, 3 блок 19 числа и так по порядку ( как я писал вверху) сегодня, завтра, послезавтра, но не три текста ( всего один) и как можно сделать, так чтобы каждый раз создавать блоки, а они сами менятся в определенный день будут 1 блок в первый день, 2 в следующий, и так например 7 дней (т.е. менять текст потом)
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Работа с текстом в flash

Сообщение sasha^ »

Sergoi, может бы и помог, но не пойму что нужно...
из того что понял: нужно сделать разный текст каждый день, но по-порядку? или как?
а насчет блоков не пойму... вот у нас есть текст... у нас есть блоки(одинаковы?), мы их должны создавать программно и тогда только текст в них разный будет и все...?

PS. почитай по работу с xml... у xml есть атрибуты, с их помощью уже посложнее алгоритм можно придумать.. XML и XMLList, импорта не нужно, это верхнего уровня пакет...
Sergoi
Сообщения: 21
Зарегистрирован: 21 авг 2011, 05:16

Re: Работа с текстом в flash

Сообщение Sergoi »

sasha^ забудь про блоки, нужно сделать разный текст, каждый день, через 24 часа меняется, и по порядку
DDer
Сообщения: 31
Зарегистрирован: 14 апр 2013, 21:11

Re: Работа с текстом в flash

Сообщение DDer »

Увидел про 7 дней :D может подойдет, а если нет еще еще информации давай :D
Динамическое текстовое поле с именем "textA" и маленький код:

Код: Выделить всё

var text1:String;var date:Date;date=new Date();var DN=date.getDay();  var req:URLRequest = new URLRequest("1.txt");var loader = new URLLoader();loader.dataFormat = URLLoaderDataFormat.VARIABLES;loader.addEventListener(Event.COMPLETE, onLoaded);loader.load(req);function onLoaded (e:Event){    text1=loader.data.text[DN];    textA.text=text1;}
1.txt

Код: Выделить всё

text=Первый текст&text=Второй текст&text=третий текст&text=Четвертый текст&text=Пятый текст&text=Шестой текст&text=Седьмой текст
Каждый день будет свой текст в Воскресенье первый и Понедельник второй и т д
Ответить