Форум 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)
-   -   XML. тег CDATA, загрузка изображений в текстовое поле (http://www.flasher.ru/forum/showthread.php?t=80284)

sem1313 25.05.2006 15:54

XML. тег CDATA, загрузка изображений в текстовое поле
 
Возможно ли сделать подгрузку изображений в динамическое текстовое поле, с помощью XML, через тег CDATA, но в оболочку, в клип mcFoto_mc?

Например XML:
Код:

<m>
        <k name="BLA"><![CDATA[<b>Пример текста и фотка загруженная обычным способом</b><img src='Обычная фотка'><b> А
теперь фотка, которая грузится в динамическое текстовое поле с помощью мувика, который имеет Linkage в библиотеке mcFoto_mc</b><img src='mcFoto_mc'>]]</k>

</m>

Суть вопроса, как передать "имя фотки" мувику mcFoto_mc, который с помощью вышеприведенного XML добавляется в текстовое

поле.

Пример вида:
Код:

<m>
        <k name="BLA"><![CDATA[<b>Пример текста и фотка загруженная обычным способом</b><img src='Обычная фотка'><b> А
теперь фотка, которая грузится в динамическое текстовое поле с помощью мувика, который имеет Linkage в библиотеке
mcFoto_mc</b><img src='mcFoto_mc&Foto1.jpg'>]]</k>

</m>

Ессесно не срабатывает.

Можно конечно при загрузке XML сканировать текст на определнный тег, например <FT>, и замещать его тегом <img src='Значение в теге <FT>', но это во первых будет тормозить Флеху, а во вторых очень не удобно...и очень большая куча в третьих...

Мож, через setStyle, как нить можно?... Но вряд ли...

Usnul 26.05.2006 00:35

не проще так?
Код:

<m>
  <item>
    <text>blablabla</text>
    <img>bla.jpg</img>
  </item>
</m>

вообще ты помоему конкретно запутался сам, почитай про то как грузить картинки в HMTL.

silin 26.05.2006 01:04

такой вот выверт, может и сгодится:
в img прописываем alt с нужным параметром <img src='mcFoto_mc' alt='Foto1.jpg'>
флеш его игнорирует, но в htmlText сохраняет, а мы его читаем из самого mcFoto_mc:
var s=this._parent.htmlText;
var b=s.indexOf("ALT=\"")+5;
var e=s.indexOf("\"",b);
var pic=s.substring(b,e);
trace(pic)

KUZEN 26.05.2006 01:36

Цитата:

Сообщение от Usnul
не проще так?
Код:

<m>
  <item>
    <text>blablabla</text>
    <img>bla.jpg</img>
  </item>
</m>

вообще ты помоему конкретно запутался сам, почитай про то как грузить картинки в HMTL.

Ага , а потом ещё парсер писать во флеше, а с CDATA просто натолкал вместе с тегами и париться не надо, так что ничего не проще ...

Usnul 26.05.2006 04:24

парсер в 3 строчки блин... но составлять документы для обработки раза в 3 проще становиться и читать тоже. + экономия мегобайтов, сантиметров и деревьев.

KUZEN 26.05.2006 05:19

Цитата:

Сообщение от Usnul
парсер в 3 строчки блин... но составлять документы для обработки раза в 3 проще становиться и читать тоже. + экономия мегобайтов, сантиметров и деревьев.

А если тегов тьма и структура гораздо сложнее, то во первых парсер задолбенишся писать, во вторых нагрузка на проц, а в третьих о каких мегобайтах идёт речь ))) несчастные килобайты, которы в наше время уж никто не считает )))

breez38 26.05.2006 06:39

а о чем собственно спор? CDATA все-равно flash'ем не поддерживается. Да даже если и поддреживал, все-равно нужно было бы писать парсер, чтоб эти данные выципить, записать в BitmapData, скажем, а потом нарисовать его на мувиклип.
Так что можно написать рекурентный обход XML-ника, и на каждый тип тега вызывать соответсвующий обработчик.
В любом случае нагрузка на проц будет, даже если б эта самая CDATA поддерживалась флешем, и был бы встроенный механизм, "понимающий" как это все в TextField вставлять - в любом случае XML будет парситься. Разница только в том, кто писал парсер - вы или разработчики флеша :)

sem1313 26.05.2006 09:33

2silin, спасибо за ценный совет.

2Usnul, тебе KUZEN уже объяснил, чем полезен и удобен тег CDATA. И это неоспоримо.

Usnul 26.05.2006 18:53

Цитата:

Сообщение от sem1313
2silin, спасибо за ценный совет.

2Usnul, тебе KUZEN уже объяснил, чем полезен и удобен тег CDATA. И это неоспоримо.

Силин показал тебе пример парсера.
Кузен и я говорили о разных вещах.

[sarcasm]"наздоровье, всегда рад помочь, сразу хочется бежать и отвечать на еще десяток вопросов когда слышишь такие приятные слова как 'спасибо'"[/sarcasm]



ЗЫ
топик превратился во флейм.

Nox Noctis 27.05.2006 04:19

добрый вечер, буду краток. :)
Код:

var xml:XML = new XML("<a><![CDATA[<b>Пример текста и фотка загруженная обычным способом</b><img src='Обычная фотка'><b> А теперь фотка, которая грузится в динамическое текстовое поле с помощью мувика, который имеет Linkage в библиотеке mcFoto_mc</b><img id='test_mc' src='mcFoto_mc&Foto1.jpg'>]]></a>");
var html:XML = new XML(xml.firstChild.firstChild.nodeValue);
trace(html);
var imgNode:XMLNode = html["idMap"].test_mc;
trace(imgNode);
var imgData:Array = imgNode.attributes.src.split("&");
trace(imgData);
TF.htmlText = html;
trace(TF.test_mc);

фишка в том, что с одной стороны, если вы поставите в тег <img> атрибут id, то при парсинге этого дела в ХМЛ, вы получите ссылку на эту ноду внутри объекта idMap.

а с другой стороны, если вы присвоите строковое значение этой ноды свойству htmlText текстового поля, вы получите внутри текстового поля клип, который будет назван в соответствии с атрибутом id тега <img>.

дальше, я думаю, вы догадаетесь, что делать.

breez38 какую-то ересь говорит. :)

Usnul вредничает не по теме. :)


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

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