Форум 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)
-   -   Бегущая строка со звездами... (http://www.flasher.ru/forum/showthread.php?t=94271)

KVAZARD 09.04.2007 02:23

Бегущая строка со звездами...
 
Вложений: 2
Друзья!
Вообще я не мега-флэшер. Возникла проблема , а дело очень срочное.
Нужно сделать бегущую строку средствами флэш.
Строка очень большая.(прикрепил файл)
Плюс между каждым ФИО должна быть звёздочка. Ну, обычная такая, с ней нет проблем.
Расскажу, как я пытался это сделать:
1 способ - просто создал динамик текст со всем списком в одну строчку
и звёздочки натыкал вручную. Сделал обычный моушен - тормозит ужасно.:wacko:
2 способ - разбил текст на небольшие куски, и в каждом отдельном кадре акшенскриптом (this._x -=1) их двигал подгружая новую переходом на след. Кадр. Тормозит не чуть не хуже.!!!
ПРИЧЕМ только когда мульт уже вставлен в html. В плеере всё ок!

Сам я вижу решение проблемы в подгрузке из файла html -этой строки.(т.е. вся строка уже целиком со звездами) И прогон в динамик тексте акшен скриптом.

Это приблизительно то что я написал::rtfm:
-----
Код:

my_string = new XML();
my_string.load('string.html');
my_string.ignoreWhite = true;
my_string.onLoad = test;
function test() {
    string = my_xml.firstChild.firstChild.nodeValue; 

}
Потом в динамик текст и…

running_str.run = function(){
 this.text = this.text.substr(1) + this.text.substr(0,1);
}
tid = setInterval(running_str, "run", 50);

-----
Но у меня в силу слабого владения последним это не получилось. Звёзды – превращаются в одну и болтаются гдето непойми где… :confused:

iNils 09.04.2007 02:25

1. Для оформления своего кода, надо использовать теги [code][/code].
2. Для вопросов связанных с программированием, есть раздел ActionScript для Начинающих

KVAZARD 09.04.2007 03:36

Да у меня тут не программировние даже. Просто дёргается мувик... и это не красиво. если бы какой другой элемент может и незаметно , а бегущая строка это очень видно. и моушен анимация и экшен скрипт дают одинаковый результат - неуд. что ж делать то?
на странице ещё две флэхи - одна большая с фейрверком и спецэффектами. заметил ,что когда её убираю то строка тормозит меньше. но это не может быть из-за мощности компьютера, у меня машина за 3500$. тут дело во флэш.

iNils 09.04.2007 04:23

Вложений: 1
А так тормозит?

KVAZARD 09.04.2007 05:27

спасибо только ... тормозит :(
 
Вложений: 1
круто . именно то о чем я думал...
но вот исходник у меня сглючил. я в нём ничего не менял, только Ctrl+Enter нажал - звезды есть,а текста нет. странно. прикрепил.
и вставил в хтмл - тормозит. но я уже догадываюсь почему. он тормозит ровно на взрыв салюта.(там салют;) )
уфф... аццкая ночь.


да. проверил. тормозит из-за шапки сайта. и дело даже не в салюте.там просто перебор - буду чистиь.

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

Kikasso 09.04.2007 06:01

Поковыряйся с текстовым полем справа от звездочки (в библиотеке), надо в него включить очертания букв.
Только не включай все, включи английские, цифры и "абвгдежзик...АБВГДЕЖЗИК....." , то есть только те что нужны.
Со скриптом все нормально.

2 iNils: вы включили диапазон "Russian", кастомный?

upd: вот все русские. копи-пасте их.
абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

KVAZARD 09.04.2007 06:09

спасибо. помогло. всем респект.

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

iNils 09.04.2007 15:50

Цитата:

Сообщение от Kikasso
2 iNils: вы включили диапазон "Russian", кастомный?

Кастомный, там 214 символов, и русские и латинские. Но посколько он у меня был первым в списке, то у других должен выбираться диапазон All

Kikasso 09.04.2007 16:10

Странно, у меня не выбралось ничего. У меня он последним стоит.
А "russLetters.txt" - на рабочем столе))

iNils 09.04.2007 16:15

Цитата:

Сообщение от Kikasso
Странно, у меня не выбралось ничего. У меня он последним стоит.
А "russLetters.txt" - на рабочем столе))

Мда, надо бы кастомные наборы в fla включать, а то действительно бред выходит.

etc 09.04.2007 20:39

iNils, скинь свой UnicodeTable.
Хотя я не знаю, в проектах обычно ставится весь Cyrillic.

iNils 09.04.2007 20:59

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

Сообщение от __etc
iNils, скинь свой UnicodeTable.
Хотя я не знаю, в проектах обычно ставится весь Cyrillic.

В моем наборе 214 символов (они все в комментах видны), а Cyrillic содержит 499 (в большей части бесполезные)

etc 09.04.2007 21:01

Тут тонкий момент, что проект может быть отдан кому-нибудь, у кого нет это таблицы.

iNils 09.04.2007 21:02

Цитата:

Сообщение от __etc
Тут тонкий момент, что проект может быть отдан кому-нибудь, у кого нет это таблицы.

Я в таких случаях прикладываю xml и пишу сопроводительный текст.

aksios 10.04.2007 21:59

iNils,а тебе не известны способы как обеспечить плавную прокрутку?
Я знаю как сделать, чтоб буквы двигались плавно, тока при этом, если шрифт достаточно крупный, все равно возникают дополнительные дефекты - типа пропуска строк. На большом экране как то не очень, да и проц грузиться по полной.

iNils 11.04.2007 02:03

Со скроллом больших букв не сталкивался.

KVAZARD 17.04.2007 01:13

www.kvazard.fatal.ru - туда всё залил
бегущая строка там сильно дергается?
у меня ровно идет. но некоторые граждане(назовем их так) , утверждают что строка идет рывками.
кто как видит?

__Bender 17.04.2007 01:54

А чего при движке мышки, строка рывками идет??

DanQuimby 17.04.2007 02:24

Я думал что у тя что то тормозит.Но тут просто не правильная концепция вообще
скрола как такового.
Я попробую сегодня ночью сделать по другому скрол. И посмотрю так же будет у меня
он тормозить.

__Bender 17.04.2007 02:29

Ой, не надо мне советовать, что надо делать. Я давно не новичек во Флеше.. так что ты займись оптимизацией, ведь должен твой проэкт быть расчитан на разную производительность компъютэров. Но мой комп. довольно силен.. хотя бы ОП-1024МВ

DanQuimby 17.04.2007 03:00

__Bender не повериш у меня тоже не хлипкий , рабочая "лошадка"
и тормозит.
Но щас перерыл многие "буржуйские" порталы и то что они предлогали
один хрен тормозят . Задумлся ... а может быть как нить "извернуться"
и просто попытаться сделать без скролла горизонтального.
На то она и фантазия что бы над ней изгаляться :)

__Bender 17.04.2007 03:50

а ты програмнно пишешь или вручную через Motion Tween в кадре, а?

KVAZARD 17.04.2007 04:10

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

__Bender 17.04.2007 10:58

А может лучше так?
Код:

function init () {
        mcRun.setMask(mcMaska)
        arrayRun = new Array ();
        arrayName = lv.name.split ("      ");
        setInterval(this, "run", 5);
//        this.onEnterFrame = run; вообще удалить зачем повторный вызов?
}


KVAZARD 17.04.2007 13:04

Цитата:

Сообщение от __Bender
А может лучше так?

я незаметил разницы. но может и лучше.

Kikasso 17.04.2007 13:24

Цитата:

Сообщение от __Bender
А может лучше так?

Что, 200 раз в секунду? А монитор сколько раз в секунду моргает?
Код:

function init () {
        mcRun.setMask(mcMaska)
        arrayRun = new Array ();
        arrayName = lv.name.split ("      ");
        setInterval(this, "run", 25);
}

40 по уши хватит.

etc 17.04.2007 13:37

И чем вам onEnterFrame не угодил?

KVAZARD 17.04.2007 13:39

попробовал 25. с 5-ю лучше едет.
25 - вообще дергается и залипть начало.

Цитата:

Сообщение от __etc
И чем вам onEnterFrame не угодил?

вот мне лично он ничего плохого не сделал.
но знающие люди говорят, что он процессор сильно грузит.

etc 17.04.2007 14:02

Цитата:

Сообщение от KVAZARD
но знающие люди говорят, что он процессор сильно грузит.

Кто сказал эту чушь? По-вашему, интервал, типа, меньше грузит?

Kikasso 17.04.2007 14:27

Там просто накосячено, и onEnterFrame не срабатывает.
Код:

import mx.utils.Delegate;
var cx:Number = 0;
var arrayName:Array = null;
var arrayRun:Array = null;
var lv:LoadVars = new LoadVars ();
lv.onLoad = Delegate.create (this, init);
lv.load ("text.txt");
function init () {
        mcRun.setMask(mcMaska)
        arrayRun = new Array ();
        arrayName = lv.name.split ("      ");
_root.onEnterFrame = function(){ this.run(1.5); }
}
function run (dx:Number) {
        if (arrayRun.length == 0 || arrayRun[arrayRun.length - 1]._width + arrayRun[arrayRun.length - 1]._x +10<mcMaska._width ) {
                var depth:Number = mcRun.getNextHighestDepth ();
                var mc:MovieClip = mcRun.attachMovie ("libStar", "mc" + depth, depth, {_x:mcMaska._width});
                mc.txt.autoSize = true;
                mc.txt.text = arrayName[cx];
                arrayRun.push (mc);
                cx++;
                if (cx == arrayName.length) {
                        cx = 0;
                }
        }
        if (arrayRun[0]._x < -arrayRun[0]._width-350) {
                var mc:MovieClip = MovieClip (arrayRun.shift ());
                mc.unloadMovie ();
        }
        for (var i:Number = 0; i < arrayRun.length; i++) {
                arrayRun[i]._x -= dx;
        }
}

То, что выделено красным - скорость прокрутки. fps поставь 31.
init прикручено к LoadVars - откуда там возьмутся кадры?

etc 17.04.2007 14:33

Цитата:

Сообщение от Kikasso
Там просто накосячено, и onEnterFrame не срабатывает.

Значит надо переписывать. С нуля.
Я совершенно не понимаю, зачем делать бегущую строку с частотой выше fps, надеясь на плавность движения, если конечно не применять updateAfterEvent. Но я вообще смысла в интервалах, сравнимых по частоте с fps не вижу.

KVAZARD 17.04.2007 16:18

вот. с параметрами поиграл. всё нормально стало вроде.

iNils 17.04.2007 18:35

Цитата:

Сообщение от __etc
Но я вообще смысла в интервалах, сравнимых по частоте с fps не вижу.

Для вызова не визуальных функций.
А строка тормозила из-за слишком большого фпс, Кстати в в 8-ке можне использовать cacheAsBitmap

KVAZARD 17.04.2007 20:30

Цитата:

Сообщение от iNils
А строка тормозила из-за слишком большого фпс, Кстати в в 8-ке можне использовать cacheAsBitmap

но с маленьким кол-вом фпс ваще всё жестко дергается.
а что это за функция ,cacheAsBitmap?

__Bender 17.04.2007 20:36

KVAZARD
F1

etc 17.04.2007 21:53

Цитата:

Сообщение от iNils
Для вызова не визуальных функций.
А строка тормозила из-за слишком большого фпс, Кстати в в 8-ке можне использовать cacheAsBitmap

Ну про невизуальные понятно, да. Я подразумевал визуальные.

iNils 18.04.2007 00:33

Цитата:

Сообщение от __etc
Ну про невизуальные понятно, да. Я подразумевал визуальные.

А я для тех написал, кто не понял, что ты подразумевал :D Когда читают такое утверждение, без описания ньюансов, то проецируют на все, а потом рождается мнение, что "onEnterFrame ест много ресурсов"

KVAZARD 18.04.2007 12:55

Всё. я понял что мои усилия тщетны.
 
Предлагаю решить эту проблему за лавэ. (см. Вакансии)
Есть желающие?

etc 18.04.2007 13:14

Для этого есть раздел вакансий.

TankMan 22.06.2008 16:01

Я тут скачал RUN_STRING2 - и он почему то у меня не открывается - наверное версия старая... есть у кого-нибудь под Flash MX 2004 этот пример?


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

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