Просмотр полной версии : Бегущая строка со звездами...
Друзья!
Вообще я не мега-флэшер. Возникла проблема , а дело очень срочное.
Нужно сделать бегущую строку средствами флэш.
Строка очень большая.(прикрепил файл)
Плюс между каждым ФИО должна быть звёздочка. Ну, обычная такая, с ней нет проблем.
Расскажу, как я пытался это сделать:
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:
1. Для оформления своего кода, надо использовать теги .
2. Для вопросов связанных с программированием, есть раздел ActionScript для Начинающих
Да у меня тут не программировние даже. Просто дёргается мувик... и это не красиво. если бы какой другой элемент может и незаметно , а бегущая строка это очень видно. и моушен анимация и экшен скрипт дают одинаковый результат - неуд. что ж делать то?
на странице ещё две флэхи - одна большая с фейрверком и спецэффектами. заметил ,что когда её убираю то строка тормозит меньше. но это не может быть из-за мощности компьютера, у меня машина за 3500$. тут дело во флэш.
круто . именно то о чем я думал...
но вот исходник у меня сглючил. я в нём ничего не менял, только Ctrl+Enter нажал - звезды есть,а текста нет. странно. прикрепил.
и вставил в хтмл - тормозит. но я уже догадываюсь почему. он тормозит ровно на взрыв салюта.(там салют;) )
уфф... аццкая ночь.
да. проверил. тормозит из-за шапки сайта. и дело даже не в салюте.там просто перебор - буду чистиь.
и ещё... а можно скрипт проврить, сглючил, а ведь то что надо. я бы неделю такой писал :)
Поковыряйся с текстовым полем справа от звездочки (в библиотеке), надо в него включить очертания букв.
Только не включай все, включи английские, цифры и "абвгдежзик...АБВГДЕЖЗИК....." , то есть только те что нужны.
Со скриптом все нормально.
2 iNils: вы включили диапазон "Russian", кастомный?
upd: вот все русские. копи-пасте их.
абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
спасибо. помогло. всем респект.
млин. вот я ламо всётаки. я щас вот пытаюсь её растянуть. и буквы тоже растягиваются. я это в коде вижу, но как исправить незнаю.
и цвет фона поменять немогу. там надо чёрный.
----------------------------------------------
ага, всё - с цветом разрулил.
с остальным тоже думаю разберусь...:yahoo:
2 iNils: вы включили диапазон "Russian", кастомный?Кастомный, там 214 символов, и русские и латинские. Но посколько он у меня был первым в списке, то у других должен выбираться диапазон All
Странно, у меня не выбралось ничего. У меня он последним стоит.
А "russLetters.txt" - на рабочем столе))
Странно, у меня не выбралось ничего. У меня он последним стоит.
А "russLetters.txt" - на рабочем столе))
Мда, надо бы кастомные наборы в fla включать, а то действительно бред выходит.
iNils, скинь свой UnicodeTable.
Хотя я не знаю, в проектах обычно ставится весь Cyrillic.
iNils, скинь свой UnicodeTable.
Хотя я не знаю, в проектах обычно ставится весь Cyrillic.В моем наборе 214 символов (они все в комментах видны), а Cyrillic содержит 499 (в большей части бесполезные)
Тут тонкий момент, что проект может быть отдан кому-нибудь, у кого нет это таблицы.
Тут тонкий момент, что проект может быть отдан кому-нибудь, у кого нет это таблицы.
Я в таких случаях прикладываю xml и пишу сопроводительный текст.
iNils,а тебе не известны способы как обеспечить плавную прокрутку?
Я знаю как сделать, чтоб буквы двигались плавно, тока при этом, если шрифт достаточно крупный, все равно возникают дополнительные дефекты - типа пропуска строк. На большом экране как то не очень, да и проц грузиться по полной.
Со скроллом больших букв не сталкивался.
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 в кадре, а?
мне сам код написал 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; вообще удалить зачем повторный вызов?
}
А может лучше так?
я незаметил разницы. но может и лучше.
А может лучше так?
Что, 200 раз в секунду? А монитор сколько раз в секунду моргает?
function init () {
mcRun.setMask(mcMaska)
arrayRun = new Array ();
arrayName = lv.name.split (" ");
setInterval(this, "run", 25);
}
40 по уши хватит.
И чем вам onEnterFrame не угодил?
попробовал 25. с 5-ю лучше едет.
25 - вообще дергается и залипть начало.
И чем вам onEnterFrame не угодил?
вот мне лично он ничего плохого не сделал.
но знающие люди говорят, что он процессор сильно грузит.
но знающие люди говорят, что он процессор сильно грузит.
Кто сказал эту чушь? По-вашему, интервал, типа, меньше грузит?
Там просто накосячено, и 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 - откуда там возьмутся кадры?
Там просто накосячено, и onEnterFrame не срабатывает.
Значит надо переписывать. С нуля.
Я совершенно не понимаю, зачем делать бегущую строку с частотой выше fps, надеясь на плавность движения, если конечно не применять updateAfterEvent. Но я вообще смысла в интервалах, сравнимых по частоте с fps не вижу.
вот. с параметрами поиграл. всё нормально стало вроде.
Но я вообще смысла в интервалах, сравнимых по частоте с fps не вижу.Для вызова не визуальных функций.
А строка тормозила из-за слишком большого фпс, Кстати в в 8-ке можне использовать cacheAsBitmap
А строка тормозила из-за слишком большого фпс, Кстати в в 8-ке можне использовать cacheAsBitmap
но с маленьким кол-вом фпс ваще всё жестко дергается.
а что это за функция ,cacheAsBitmap?
__Bender
17.04.2007, 20:36
KVAZARD
F1
Для вызова не визуальных функций.
А строка тормозила из-за слишком большого фпс, Кстати в в 8-ке можне использовать cacheAsBitmap
Ну про невизуальные понятно, да. Я подразумевал визуальные.
Ну про невизуальные понятно, да. Я подразумевал визуальные.А я для тех написал, кто не понял, что ты подразумевал :D Когда читают такое утверждение, без описания ньюансов, то проецируют на все, а потом рождается мнение, что "onEnterFrame ест много ресурсов"
Предлагаю решить эту проблему за лавэ. (см. Вакансии)
Есть желающие?
Для этого есть раздел вакансий.
Я тут скачал RUN_STRING2 - и он почему то у меня не открывается - наверное версия старая... есть у кого-нибудь под Flash MX 2004 этот пример?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.