Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.07.2010, 23:10
venicum вне форума Посмотреть профиль Отправить личное сообщение для venicum Найти все сообщения от venicum
  № 1  
Ответить с цитированием
venicum

Регистрация: Jul 2010
Сообщений: 11
Attention Не отображается элемент если не через mxml

Примерно такой код (импорт я не указывал)

Код AS3:
package helloworld{
    class one extends HBox{
        private var cb:ComboBox;
        private var ti:TextInput;
        private var iscb:Boolean;
        public function one(){
            cb = new ComboBox();
            ti = new TextInput();
            this.addChild(cb);
            iscb = true;
        }
        public function changeCont():void{
            iscb=!iscb;
            this.removeAllChild();
            if(iscb){
                this.addChild(cb);
            }
            else{
                this.addChild(ti);
            }
        }
    }
}
Затем
Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="150" height="245" 
	xmlns:helloworld="helloworld.*">
	<helloworld:one id="myOne"/>
	<mx:Button x="10" y="205" label="Button" click="myOne.changeCont();"/>
</mx:Application>
Проблема в том, что ничего не отображается, вообще. Нажимай кнопку, не нажимай.
Ничего не появляется. По размерам все хорошо. Но не понятно.
Я во flex'e и as3 второй день, возможно, вопрос ламерский но просьба помочь. Или надоумте если совсем ламерский

Старый 07.07.2010, 11:13
alexberkut вне форума Посмотреть профиль Отправить личное сообщение для alexberkut Найти все сообщения от alexberkut
  № 2  
Ответить с цитированием
alexberkut

Регистрация: Jun 2010
Адрес: Беларусь, Гродно
Сообщений: 58
1. Советую сразу почитать Flex Naming Convention документацию. Классы пишуться с большой буквы.
2. в конструкторе писать this.addChild(cb);нет смысла, он не отобразиться.
делать это надо так:

Код AS3:
override protected function createChildren(): void
{
  super.createChildren();
  this.addChild(cb);
}
3. где ты нашел метод removeAllChild() ? Есть метод removeAllChildren()

4. попробуй в mxml размер указать для своего компонента one. + я бы для каждого контрола (текста и комбика) тоже бы указал, хотя бы percentWidth = 100;

А в принципе молодец что начал сразу свои компоненты писать на as. Многие пишут на mxml, потом сложно переучиться. Похвально...


Последний раз редактировалось alexberkut; 07.07.2010 в 11:17.
Старый 09.07.2010, 17:53
venicum вне форума Посмотреть профиль Отправить личное сообщение для venicum Найти все сообщения от venicum
  № 3  
Ответить с цитированием
venicum

Регистрация: Jul 2010
Сообщений: 11
Вообще уже все работает (нет отрубился, форум не посещал)
1)почитаю
2)больше не буду
Вообще, я в результате остановился на обработке события applicationComplete
Дела в том, что детей не всегда одинаково надо вставлять
3)да там был removeAllChildren
4)Размеры были указаны. Дело в том, что я не использовал непосредственно TextInput и ComboBox, а тоже расширял классы, просто, долго было писать
Спасибо, только это я во flex'e второй день тогда был, а в программировании уже нет.

Добавлено через 4 минуты
Стоп это я писал про HBox => я не обрабатывал applicationComplete.
А проблему с HBox я решил совсем просто. Я его убрал, большой надобности в нем не было.
Спасибо за ответ, если еще столкнусь все сделаю как надо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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