Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Random number loader (http://www.flasher.ru/forum/showthread.php?t=146739)

Jellysq 16.11.2010 21:10

Random number loader
 
Всем привет!
Подскажие пожалуйста как можно создать флэшку, которая будет рэндомно подгружать из внешнего *txt файла данные (в данном случае это будут пятизначные числа, сохраненные в тексовом документе) после каждого нажатия на кнопку?
очень нужна ваша помощь
заранее спасибо!

udaaff 16.11.2010 21:12

Флешка может только загрузить весь файл целиком. Сделайте так, чтобы сервер отдавал при запросе определенное число.

rainbowrussia 16.11.2010 21:47

Ну или загружать весь txt, и выбирать нужное число на основе Math.random().

Jellysq 17.11.2010 14:01

сейчас у меня следующее в файле:
главная сцена - на ней кнопка и movieclip1, при нажатии на кнопку играет movieclip1,. в котором movieclip2.
в movieclip2 анимация, в конце которой появляется movieclip3, содержащий текстовое поле, в которое грузится внешний тексовый файл полностью
из этого текстового файла и нужно сделать рэндомную выборку чисел, расположенных каждое на новой строке
как это можно сделать? помогите пожалуйста...

вот скрипт, с помощью которого загружается сам текстовый документ:
Код AS1/AS2:

var myStyle:TextField.StyleSheet = new TextField.StyleSheet();
content_txt.multiline= true;
content_txt.wordWrap = true;
content_txt.txt = true;
 
var story:XML = new XML();
story.ignoreWhite = true;
story.load("news.txt");
story.onLoad = function () {       
        content_txt.htmlText = story;
}


udaaff 17.11.2010 14:11

Проще всего будет разбить этот файл в массив (String#split()), и из массива уже делать выборку. Хотя можно и непосредственно из строки, не создавая массива, если хотите сэкономить память. Ознакомьтесь с методами класса String.

Jellysq 17.11.2010 14:34

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

udaaff 17.11.2010 14:45

Почему вы грузите с помощью класса XML? Тем более что ignoreWhite удаляет все ваши символы переноса. Загружайте с помощью класса LoadVars.
Код AS1/AS2:

var s:String = "100\r\n200324\r\n300\r\n456\r\n543";
var a:Array = s.split("\r\n");
trace(a[Math.floor(Math.random() * a.length)]);

Цитата:

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

Jellysq 18.11.2010 20:40

Цитата:

хелп пробовали открывать?
открываю, читаю, пока мало чего доходит до меня а проект надо сделать поскорее:rolleyes:

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

Добавлено через 16 часов 56 минут
ну пожалуйста, кто-нбудь помогите со скриптом...
сейчас делаю следующим образом:
наглавной сцене мывиклип с анимацией, текстовое поле, кнопка(нажатие на нее - вывод числа в текстовое поле)
работает это с помощью след. скрипта:
Код AS1/AS2:

var myName:String;
var random1:Number;
var random2:Number;
var metal:Array = new Array("01749","00928","02458", "10924", "11243", "09627", "02752", "04761", "08926", "07237");
 
generateBtn.addEventListener(MouseEvent.CLICK, makeName);
 
function makeName(evt:MouseEvent):void {
    random1 = Math.floor(Math.random() * metal.length);
        myName = metal[random1];
    resultName.text = myName;
}

только вот анимация в мувиклипе должна засопориться прежде чем появится число в текстовом поле.
подскажите кто-нбудь как изменить скрипт чтоб это работало?
заранее спасибо

sestem 19.11.2010 18:11

хммм хорошая идея

Jellysq 19.11.2010 18:56

как ее до конца реализоваь только?=)

sestem 19.11.2010 21:00

1 вопрос зачем вам она?

udaaff 19.11.2010 21:04

Цитата:

Сообщение от Jellysq (Сообщение 950721)
только вот анимация в мувиклипе должна засопориться прежде чем появится число в текстовом поле.
подскажите кто-нбудь как изменить скрипт чтоб это работало?
заранее спасибо

Не могу понять в чем проблема. Останавливайте анимацию в обработчике нажатия...

Jellysq 22.11.2010 12:43

Вложений: 1
думаю по исходнику примерно понятно будет что хотелось видеть от флэшки...
конечно там куча косяков и жутко выглядит=)) да и анимация скорее всего должна быть с помощью скрипта а не вот так=)
но я флэшем занималась с перерывом в почти год, очень многое забыто - поэтому надеюсь на вашу помощь:rolleyes:

lunariusis 25.11.2010 21:15

В чем делала флешку, Cs3 и CS4 не открыли

Добавлено через 5 минут
в последнем кадре клипа который должен сначала проигрываться, поставь вызов функции
Код AS1/AS2:

_root.makeName2();
stop();

таким образом циферки можно по кнопке показать и после проигрывания клипа, правда они разные будут все время, но я так понял что именно это и надо.
а рядом с makeName() напиши такую функцию
Код AS1/AS2:

function makeName2():void {
    var random1 = Math.floor(Math.random() * _root.metal.length);
    var myName = _root.metal[random1];
    _root.resultName.text = myName;
}


Jellysq 25.11.2010 23:58

Вложений: 1
Цитата:

В чем делала флешку, Cs3 и CS4 не открыли
хм, странно сейчас сохранила отсюда архив с флешкой - тоже не открылась, до этого открывалась...
в CS4 делаю
туплю страшно) с вашим кодом не заработало...
вот заново кидаю свой исходник:
Вложение 25548

lunariusis 26.11.2010 02:48

Ну во первых тут рассматривают код на AS1 AS2, а у тебя прости AS3 что собственно видно из кода
Код AS1/AS2:

generateBtn.addEventListener(MouseEvent.CLICK, makeName)

, так что это в другую ветку. Но идея такая - как только клип с бегающими в низ циферьками закончится нужно вызвать функцию makeName() ну или подобную без входного параметра от листенера. И еще не очень красиво в AS3 использовать стиль AS2 надо сделать главный клас, и в нем все и писать. В общем тебе в ветку по AS3, раз ты уже в нем начала писать.

Jellysq 26.11.2010 17:53

нашла просто скрипт и применила, простите, что не в ту ветку пишу:rolleyes:
наверно у меня с этой флэшкой ниче не выйдет жаль...:o

Jellysq 31.01.2011 18:35

...
 
Вложений: 1
снова возник вопрос по созданию такой флешки...
имеется флешка, представляющая из себя следующее: кнопка, по нажатию на которую динамическое текстовое поле, выводит рэндомное число из заданного списка + муви-клип, в котором проигрывается анимация
Вопрос в том, как сделать чтобы по нажатию на кнопку динамическое текстовое поле не мигало на 1 фрейм перед анимацией.
Думаю все будет ясно, если посмотрите исходник:

Вложение 25885
Очень надеюсь на Вашу помощь...
Заране спасибо


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

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