Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: пользуясь случаем, хочу... (вопросик по Flash)
 
 автор: elenaki   (29.01.2008 в 19:02)   письмо автору
 
 

были у меня новости бугущей строкой на РНР. но клиенту непременно нужно свой дурацкий шрифт к ним прикрутить. прикрепить нестандартный шрифт к HTML я так и не смогла, только времени кучу потеряла. решили делать новости на Flash. тем более, что я уже умею скармливать ему текст на XML, который создает РНР. пусть админ как и раньше создает новости на РНР, они будут храниться в базе, а выводит их будет Flash, в который будет включен шрифт.

есть новости в XML:


<xml>
<news header="First header">
<text>This is first text</text>
</news>
<news header="Second header">
<text>This is secondt text</text>
</news>
<news header="Третий заголовок">
<text>Это текст третьего заголовка</text>
</news>
</xml>


есть скрипт:


// создаем объект xml класса XML;
var xml:XML = new XML();
// выставляем ему игнорирование пустых тегов с пробелами
xml.ignoreWhite = true;
// загружаем файл news.xml из текущей папки
xml.load("news.xml");
// в случае удачной загрузки вызываем функцию loadResult
xml.onLoad = loadResult;

function loadResult(){
for (i=0; i<xml.childNodes[0].childNodes.length; i++){
_root.attachMovie("News","news"+i,i);
eval("news"+i)._x = 10;
eval("news"+i)._y = 10 + i*(eval("news"+i)._height+5);
// получаем значение атрибута header
eval("news"+i).nHeader.text = xml.childNodes[0].childNodes[i].attributes.header;
// считываем текстовое значение из xml поля text
eval("news"+i).nText.text = xml.childNodes[0].childNodes[i].childNodes[0].childNodes[0].nodeValue;
}}



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

eval("news"+i)._x = 10+ i*(eval("news"+i)._width+5);
eval("news"+i)._y = 10;

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

вот тут одна из неплохих бегущих строк
http://metoart.ru/blog/2006/02/12/auto-informer_beguschaja_stroka/

   
 
 автор: AlexSol   (29.01.2008 в 21:23)   письмо автору
 
   для: elenaki   (29.01.2008 в 19:02)
 

var xml:XML = new XML('<xml><news header="First header"><text>This is first text</text></news><news header="Second header"><text>This is secondt text</text></news><news header="Третий заголовок"><text>Это текст третьего заголовка</text></news></xml>');
var container:MovieClip = _root.createEmptyMovieClip("container", 10);
//маска
var msk:MovieClip = _root.createEmptyMovieClip("msk", 20);
msk.lineStyle(0);
msk.beginFill(0,100);
msk.moveTo(0,0);
msk.lineTo(200,0);
msk.lineTo(200,300);
msk.lineTo(0,300);
msk.lineTo(0,0);
msk.endFill();
container.setMask(msk);

var data_arr:Array = new Array();

//ширина одной новости


function loadResult() {
    node = xml.firstChild;
    for (var node = node.firstChild; node != null; node=node.nextSibling) {
        data_arr.push(new Array(node.attributes.header, node.firstChild.firstChild.nodeValue));
    }
    makeClip(data_arr);
}
loadResult();


//создаем клипы с текстом
function makeClip(arr:Array) {
    for (i=0; i<arr.length; i++) {
        var mc:MovieClip = container.createEmptyMovieClip("mc"+i, i);
        var header:TextField = mc.createTextField("header", 2, 0, 0, 0, 10);
        header.autoSize = "Left"
        header.text = arr[i][0];
        header.border = true;


        var news:TextField = mc.createTextField("news", 5, header._width, 0, 0, 10);
        news.autoSize = "Left"
        news.text = arr[i][1];
        news.border = true;


        if(i>0){
            mc._x = container["mc"+(i-1)]._x+container["mc"+(i-1)]._width;
        }
        //двигаем
        
        _root.onEnterFrame = function() {
            container._x -= 1;
            if(container._x<-container._width){
                container._x = msk._width;
            }
        };
        
    }
}

   
 
 автор: elenaki   (30.01.2008 в 11:50)   письмо автору
 
   для: AlexSol   (29.01.2008 в 21:23)
 

строка бегает. не добавить шрифт. добавляю два оператора - ничего не выводит, убираю -
выводит в Times New Roman.

header.embedFonts = true; 
header.font = "Myriad Pro";


на сцене есть два поля, к которым подключены шрифты в жирном и простом начертании. именно так работает меню, которое тоже все строится динамически из XML. без шрифтов мне этот Flash не нужен. вся затея была для того, чтобы выводить новости нужным шрифтом.

   
 
 автор: AlexSol   (30.01.2008 в 12:03)   письмо автору
 
   для: elenaki   (30.01.2008 в 11:50)
 

var format:TextFormat = new TextFormat();
format.font = "DG_RoslynGothic_bold";

header.embedFonts = true;
header.setTextFormat(format)


может исходник выложить? под какой флешь

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования