Просмотр полной версии : Открыть, прочитать файл и создать мувиклип
Likoniko
10.04.2011, 19:34
Идея такая : У меня в файле написано
{
news1
}
{
news2
}
и.т.д
Надо чтоб когда открывалась скобка , флэш создовал мувиклип и внутрь мувиклипа (в текстфилд ) вписовал бы то что должно было вместо news. Проблема в том, как рассположить мувиклипы друг под другом и как вписывать в поля? Не ну понятно что прировнять результат к полю, а если мне надо динамично? Не залезать же в флэш и создовать каждый раз новое поле.
ну как вариант (не самый плохой), вместо фигурных скобок воспользоваться форматом данных XML
Likoniko
10.04.2011, 19:56
дайте пример пожалуйста, я вообще 0
<?xml version='1.0' encoding='UTF-8'?>
<news>
<newsBlock>Новостной блок номер 1</newsBlock>
<newsBlock>Новостной блок номер 2</newsBlock>
</news>
Likoniko
10.04.2011, 20:24
попробую ну а что это изменит?
Psycho Tiger
10.04.2011, 21:13
Вам не придётся писать собственный парсер, к примеру.
carrotoff
10.04.2011, 21:13
попробую ну а что это изменит?
В первую очередь, изменит это подход с Вашего на человеческий.
а если мне надо динамично? Не залезать же в флэш и создовать каждый раз новое поле.
Ну вся идея как раз в том и состоит, что вы прогружаете XML, считаете сколько Вам необходимо блоков, и создаете их. И редактировать (надеюсь, формировать динамически) нужно будет именно XML, а не трогать код AS
Psycho Tiger
10.04.2011, 22:02
Искренни надеюсь что этот пример, состряпанный на скорую руку Вам поможет.
public function test() {
var xml:XML = new SomeXML();
var xmlNodes:XMLList = xml.newsBlock;
var i:int = xmlNodes.length();
while (i--) {
var clip:MovieClip = new SomeClip();
var textField:TextField = clip.getChildByName("someTextField") as TextField;
textField.text = xmlNodes[i].toString();
clip.x = 100 * i;
addChild(clip);
}
}
Main.as:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.text.TextField;
public class Main extends Sprite
{
public function Main()
{
var urlLoader:URLLoader = new URLLoader(new URLRequest("news.xml"));
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, _onXmlLoaded)
}
private function _onXmlLoaded(e:Event):void
{
var xml:XML = new XML((e.target as URLLoader).data);
_buildTextFiels( xml.news.newsBlock );
}
private function _buildTextFiels( newsBlocks:XMLList ):void
{
var i:int = -1;
var l:int = newsBlocks.length();
while( ++i < l )
{
var txtNews:TextField = new TextField();
txtNews.width = 400;
txtNews.height = 40;
txtNews.border = true;
txtNews.text = newsBlocks[i];
var mcNewsContainer:MovieClip = new MovieClip();
mcNewsContainer.x = 10;
mcNewsContainer.y = 10 + 50 * i;
mcNewsContainer.addChild( txtNews );
this.addChild( mcNewsContainer );
}
}
}
}
news.xml:
<?xml version="1.0" encoding="utf-8" ?>
<data>
<news>
<newsBlock>Новостной блок номер 1</newsBlock>
<newsBlock>Новостной блок номер 2</newsBlock>
<newsBlock>Новостной блок номер 3</newsBlock>
</news>
</data>
Likoniko
11.04.2011, 08:40
всем спасибо
Добавлено через 24 минуты
как только добавить свой мувиклип?
Добавлено через 11 часов 44 минуты
помогите вставить свой мувиклип
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.