AS3 Flash/Animate - визуальные графики - данные из XML или Excell
Я использовал Flash много лет в качестве платформы для дизайна. Мудрый AS3, я новичок около 10 лет. Я разработал различные графики во флэш-памяти, предназначенные для печати и заполнения вручную. Однако, как правило, я дополняю графики, рисуя точки данных и линии непосредственно во Flash. Не обращая внимания на тот факт, что я использую flash для действительно нелепой цели, возможно ли рисовать символы точек данных и связывать линии, используя XML
или даже Excel
?
я использовал XML
загрузить внешние файлы изображений ранее.
Не ищу легкого решения, но если кто-то может указать мне правильное направление, пожалуйста, свяжитесь с нами.
С наилучшими пожеланиями,
Богатые
1 ответ
- Забудь о Excel.
- На самом деле это не так сложно с XML. Просто быстрый пример.
var X:XML = <root> <point x="0" y="0" /> <point x="100" y="100" /> <point x="10" y="50" /> <point x="200" y="10" /> <point x="45" y="45" /> <point x="35" y="100" /> </root>;
Это довольно простая вещь, но она показывает, как просматривать список узлов XML и как получить доступ к их атрибутам.
drawZigzag(X);
function drawZigzag(source:XML):void
{
// Get a list of points.
var aList:XMLList = source.child("point");
// Get the starting point.
var aNode:XML = aList[0];
var anX:Number = aNode.@x;
var anY:Number = aNode.@y;
// Start drawing.
graphics.lineStyle(0, 0x000000);
graphics.moveTo(anX, anY);
for (var i:int = 1; i < aList.length(); i++)
{
// Get the next coordinates.
aNode = aList[i];
anX = aNode.@x;
anY = aNode.@y;
// Draw the line.
graphics.lineTo(anX, anY);
}
}
Теперь, если вы хотите, чтобы это был внешний файл. Это также довольно просто, без обработки ошибок и прочего, но должно работать, если вы все подготовили правильно.
// I hope the following is self-explanatory.
var xmlRequest:URLRequest = new URLRequest("your.xml");
var dataLoader:URLLoader = new URLLoader;
// Loading is asynchronous so you need to listen for a relevant event.
dataLoader.addEventListener(Event.COMPLETE, onFile);
dataLoader.load(xmlRequest);
function onFile(e:Event):void
{
// Of course, your file MUST be a valid XML.
var X:XML = new XML(dataLoader.data);
// The data are ready, you can call the drawing routine now.
drawZigzag(X);
}