Динамическое добавление контейнера в динамический контейнер - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть цикл, который просматривает данные из книги и отображает их.Книга не соответствует своему формату, поэтому я пытаюсь отобразить ее двумя разными способами.Первый способ (работает нормально) - загрузить текст из этого раздела на панель и отобразить его.Второй способ - создать новую панель (панель отлично создается), а затем добавить на нее складные панели (вложенные).Вот код из цикла else.

else if (newPanel == false){
                    // simpleData is just for  the title bar of the new panel
                    // otherwise the panel has no content
                    var simpleData:Section = new Section;
                    simpleData.section_letter = item.section_letter;
                    simpleData.letter_title = item.letter_title;
                    simpleData.section_id = item.section_id;
                    simpleData.title = item.title;
                    simpleData.bookmark = item.bookmark;
                    simpleData.read_section = item.read_section;

                    var display2:readPanel02 = new readPanel02;
                    //item is all the data for the new text
                    display2.id = "panel"+item.section_id;
                    //trace(display2.name);//trace works fine
                    // set vars is how I pass in the data to the panel
                    display2.setVars(simpleData);
                    studyArea.addElement(display2); // displays fine
                    newPanel = true;

                    //this is where it fails
                    var ssPanel:subSectionPanel = new subSectionPanel;
                    //function to pass in the vars to the new panel
                    ssPanel.setSSVars(item);
                    //this.studyArea[newPanelName].addElement(ssPanel);
                    this["panel"+item.section_id].addElement(ssPanel);

Ошибка, которую я получаю: ReferenceError: Ошибка # 1069: Панель свойств.4.4 не найдена на компонентах .readTest и нет значения по умолчанию.

Я попытался установитьсвойство name вместо свойства id.Любая помощь будет принята с благодарностью.Я в тупике.Благодарю.

1 Ответ

0 голосов
/ 22 сентября 2011

Итак, вот решение, которое я придумал. Я заставил новую панель чтения создать вспомогательные панели. Я добавил утверждение else, чтобы оно стало более понятным. Панель readPanel создает первую вложенную панель, и для каждой последующей потребности вспомогательной панели она ссылается на другую панель по имени и вызывает открытую функцию на панели, которая создает новую вложенную панель. Вот код для создания главной панели:

else if (newPanel == false){
                    var display2:readPanel02 = new readPanel02;
                    studyArea.addElement(display2);
                    display2.name = "panel"+item.section_id;
                    display2.setVars(item);

                    newPanel = true;

                }
                else{
                    var myPanel:readPanel02 = studyArea.getChildByName("panel"+item.section_id) as readPanel02;
                    myPanel.addSubSection(item);

                }

А вот и функции на панели:

public function setVars(data:Section):void
        {
            myS = data;
            textLetter = myS.section_letter;
            textLetterTitle = myS.letter_title;
            textSection = myS.section_id;
            textTitle = myS.title;
            myS.bookmark == 0 ? bookmarked = false : bookmarked = true;
            myS.read_section == 0 ? doneRead = false : doneRead = true;
            showTagIcon();
            showReadIcon();
            addSubSection(myS);

        }

        public function addSubSection(data:Section):void{
            var ssPanel:subSectionPanel = new subSectionPanel;
            ssPanel.setSSVars(data);
            myContentGroup.addElementAt(ssPanel, i);
            i++;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...