Я традиционно весь свой код as3 в одном включенном файле .as, а не в виде пакетов / файлов классов, но я пытаюсь осуществить этот переход.Я немного озадачен тем, как передавать информацию туда и обратно между файлами классов.Например, то, что я пытаюсь сделать, это своего рода диаграмма узлов, где щелчок по определенному узлу прорастет его дочерними узлами, а щелчок по дочернему узлу прорастет его дочерними узлами и т. Д. У меня есть основной класс, Main.as, который я собирался сделать, чтобы разобрать XML-документ и сохранить массив всех соответствующих данных для каждого узла (такие как заголовок, ссылка и т. д.).Затем у меня есть файл класса с именем Node.as, который фактически строит узел, добавляет его на сцену и настраивает его слушателей и анимацию движения.
Мой вопрос: вся ли информация для узловхранится в Main.as, но обработка щелчков выполняется в Node.as, откуда Node.as знает, какие атрибуты назначать каждому добавленному узлу (т.е. как он обращается к массиву из Main.as, чтобы назначить свойства клипамсоздан)?
Вот пример структуры кода:
Main.as:
package
{
public class Main extends MovieClip
{
public function Tree()
{
initTree();
}
public function initTree(){
parseXML();
var firstNode:Node = new Node();
addChild(firstNode);
}
}
}
Node.as:
package
{
public class Node extends MovieClip
{
public function Node()
{
drawNode();
}
private function drawNode(parentNode = null){
//draw the node shape
//add the shape to a movie clip
//assign listeners to the movie clip
//add movie clip to the stage
}
private function nodeAdded {
//position the node
//animate the node
}
private function nodeOver (e:MouseEvent):void {
//fetch the information for this node from the XML in Main.as - how do I do this?
}
}