С Новым годом! Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
1
AS 3.0

Программное добавление объектов на сцену

21.10.2012, 18:39. Показов 4667. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу помощи:
Вот наваял класс и думаю, что он должен что-то выводить видимое, а именно - прямоугольник. Не выводит :о(( Почему?

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package renju 
{
    import flash.display.Shape;
    import flash.display.Sprite;
    
    /*
     * @author VY
     */
    public class field extends Sprite
    {
        
        public function field() 
        {
            // super();
            var gf : Shape = new Shape();
            gf.graphics.lineStyle(3, 0x998800);
            gf.graphics.drawRect(100, 100, 524, 524);   // : void;
        }
        
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2012, 18:39
Ответы с готовыми решениями:

Добавление квадрата на сцену
Добрый день, не давно начал разбираться в A.S. 2.0. Есть ли возможность добавление...

Имеется ли возможность детектить добавление объектов на сцену ?
Буквально. Если чужой объект добавляет на сцену объекты то как это узнать ? Ранее такой...

программное добавление объектов на форму
не как не могу разобраться procedure TForm1.Button1Click(Sender: TObject); var b : TButton;...

Программное добавление и удаление объектов
Добрый день ! Создаю кнопку private void Create_button(string name_button , string...

27
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
21.10.2012, 19:10 2
забыл добавить на сцену
ActionScript 3
1
addChild(gf);
1
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
21.10.2012, 20:12  [ТС] 3
Цитата Сообщение от TanaTiX Посмотреть сообщение
забыл добавить на сцену
ActionScript 3
1
addChild(gf);
Спасибо. Переделал. Привожу только метод:

ActionScript 3
1
2
3
4
5
6
7
8
9
10
public function field() 
        {
            // super();
            var gf : Shape = new Shape();
            gf.graphics.lineStyle(3, 0x998800);
            gf.graphics.beginFill(0xaaaa00);
            gf.graphics.drawRect(100, 100, 524, 524);   // : void;
            gf.graphics.endFill();
            addChild(gf);
        }
Все равно экран плейера пустой.
Может я не так просматривать пытаюсь? Я жму в FD на кнопочку Test Project.
0
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
21.10.2012, 20:47 4
А класс field (кстати классы принято называть с большой буквы) на сцене присутствует, в проекте участвует?
0
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
21.10.2012, 21:03  [ТС] 5
Цитата Сообщение от TanaTiX Посмотреть сообщение
А класс field (кстати классы принято называть с большой буквы) на сцене присутствует, в проекте участвует?
Да, класс - в проекте.
Вот класс мэйн:

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package renju
{
    import flash.display.Sprite;
    import flash.events.Event;
 
    [Frame(factoryClass="renju.Preloader")]
    public class Main extends Sprite 
    {
 
        nf:field;
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            var nf : field  = new field();
            //addChild(nf);
            // entry point
        }
 
    }
 
}
Этот класс полностью написал FD, а я только одну строку - создание объекта field.
0
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
21.10.2012, 21:09 6
Так это раскомментировать надо (2 и более слеша - комментарий)
ActionScript 3
1
addChild(nf);
А вот это
ActionScript 3
1
 nf:field;
лишнее.
1
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
21.10.2012, 21:26  [ТС] 7
Цитата Сообщение от TanaTiX Посмотреть сообщение
Так это раскомментировать надо (2 и более слеша - комментарий)
ActionScript 3
1
addChild(nf);
А вот это
ActionScript 3
1
 nf:field;
лишнее.
Про комментарий я знаю. Это я закомментировал после того, как Вы посоветовали в классе field добавить фигуру gf в сцену - подумал, что двойное добавление Чайльда будет уж слишком.

Если nf не объявлять как тип field, разве так можно? Написать var nf = new field(); ?

Пробую.

Ура-а-а-а! Прямоугольник появился!
0
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
21.10.2012, 21:32 8
Цитата Сообщение от flashing Посмотреть сообщение
Если nf не объявлять как тип field, разве так можно? Написать var nf = new field(); ?
Речь не об этой строчке, посмотри на 10ю в коде 5-го сообщения.
1
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
21.10.2012, 22:15  [ТС] 9
Цитата Сообщение от TanaTiX Посмотреть сообщение
Речь не об этой строчке, посмотри на 10ю в коде 5-го сообщения.
А-а-а... Это дефект copy/paste переноса сюда, в коде этого нет.

В общем, с Вашей помощью у меня получилось игровое поле, как я хотел. Спасибо!
Хочу показать результат. Как сюда картинки вставлять?
Осталось только обозначить линии - по вертикали цифрами и по горизонтали буквами.

Добавлено через 16 минут
Цитата Сообщение от flashing Посмотреть сообщение
А-а-а... Это дефект copy/paste переноса сюда, в коде этого нет.

В общем, с Вашей помощью у меня получилось игровое поле, как я хотел. Спасибо!
Хочу показать результат. Как сюда картинки вставлять?
Осталось только обозначить линии - по вертикали цифрами и по горизонтали буквами.
... Что-то не нашел - как выводить надписи? :о((
0
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
21.10.2012, 22:21 10
Цитата Сообщение от flashing Посмотреть сообщение
Что-то не нашел - как выводить надписи?
О каких надписях речь?

Цитата Сообщение от flashing Посмотреть сообщение
Как сюда картинки вставлять?
В "расширенном режиме" "управление вложениями"
0
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
21.10.2012, 22:49  [ТС] 11
Цитата Сообщение от TanaTiX Посмотреть сообщение
О каких надписях речь?


В "расширенном режиме" "управление вложениями"
Надписи на игровом поле (вдоль его границ): обозначить линии буквами и цифрами
Миниатюры
Программное добавление объектов на сцену  
0
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
21.10.2012, 23:06 12
текстовое поле - TextField, все остальное - как и для других DisplayObject-ов:
ActionScript 3
1
2
3
var txt:TextField = new TextField();
addChild(txt);
txt.text = "some text";
1
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
21.10.2012, 23:31  [ТС] 13
Цитата Сообщение от TanaTiX Посмотреть сообщение
текстовое поле - TextField, все остальное - как и для других DisplayObject-ов:
ActionScript 3
1
2
3
var txt:TextField = new TextField();
addChild(txt);
txt.text = "some text";
Будет более 50 надписей. Хочу создавать их в цикле. Получатся все - в одной переменной?
ЭдЧайльд нужно писать для каждой итерации или после всех?
Пробую...
0
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
21.10.2012, 23:41 14
Цитата Сообщение от flashing Посмотреть сообщение
Получатся все - в одной переменной?
На самом деле для таких объектов переменная - это лишь ссылка на объект, а не сам объект. Необходимо большое количество однотипных объектов - помещайте в (типизированный) массив (Array, Vector) Если же речь идет об элементах интерфейса, которые никогда не будут меняться, то и ссылки создавать не нужно, вот пример:
ActionScript 3
1
addChild(new SomeObject());
1
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
22.10.2012, 13:00  [ТС] 15
Цитата Сообщение от TanaTiX Посмотреть сообщение
На самом деле для таких объектов переменная - это лишь ссылка на объект, а не сам объект. Необходимо большое количество однотипных объектов - помещайте в (типизированный) массив (Array, Vector) Если же речь идет об элементах интерфейса, которые никогда не будут меняться, то и ссылки создавать не нужно, вот пример:
ActionScript 3
1
addChild(new SomeObject());
Спасибо.
Значит на квадрат и линии поля я создал ссылки напрасно?
Не понимаю пока - как сделать их без переменных? Там пришлось настраивать цвет и прочее.
0
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
22.10.2012, 20:12 16
Цитата Сообщение от flashing Посмотреть сообщение
Значит на квадрат и линии поля я создал ссылки напрасно?
Может и нет, нужно смотреть по ситуации. Ссылки, созданные/объявленные внутри метода живут, пока жив метод, т.е. до окончания его выполнения.
1
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
23.10.2012, 09:02  [ТС] 17
Вот фрагмент кода, который, как я думал, должен выводить 25 надписей, а он выводит только одну - последнюю. Не пойму - почему? А линии выводит как надо - 25 шт.
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            var lbl : TextField = new TextField();
            //lbl.setTextFormat.apply(0x885500);
            lbx = 90;
            lby = 60;
            gg.graphics.moveTo(lbx,lby);
            for (var j:int = 0; j < 25; j++)    {
                lbl.x = 70;
                lbl.y = lby-10;
                lbl.text = "" + (j + 1) + "";
                addChild(lbl);
                
                gg.graphics.lineTo(lbx+520+20, lby);
                lby += 20;
                gg.graphics.moveTo(lbx, lby);
Прошу подсказать - что подправить, чтобы выводились 25 надписей?
0
Модератор
2911 / 1770 / 179
Регистрация: 19.02.2011
Сообщений: 6,505
23.10.2012, 20:24 18
flashing, в данном примере создается только один объект TextField - он создается вне цикла, а должен создаваться внутри.
1
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
24.10.2012, 02:30  [ТС] 19
Цитата Сообщение от TanaTiX Посмотреть сообщение
flashing, в данном примере создается только один объект TextField - он создается вне цикла, а должен создаваться внутри.
Понял. У меня создается 50 линий в одном объекте Shape и все выводится. Я думал, что и с ТекстФилд так можно. Не проходит :о(( Исправил, заработало.
Большое спасибо!!
0
15 / 8 / 2
Регистрация: 19.10.2012
Сообщений: 131
26.10.2012, 02:39  [ТС] 20
Потихоньку продвигаюсь :о))
Спасибо за помощь - всем!

А подскажите пожалуйста: при наведении курсора мыши на объект - всплывающая подсказка - это какой класс в AS3?
0
26.10.2012, 02:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2012, 02:39
Помогаю со студенческими работами здесь

Программное создание GridLayout и добавление в него объектов
Дисклеймер: Всем доброго дня! Я - новичок в написании программ под Android. Имеется небольшой опыт...

Добавление на сцену не из главного AS файла
Есть два файла as, Game и Second. В конструкторе первого и второго &quot;одинаковый&quot; код добавления на...

Добавление объекта на сцену согласно счетчика на кнопку
Скажите пожалуйста как на AS 3 реализовать счетчик на кнопку ...

Программное позиционирование объектов
Добрый день подскажите почему не получается . Есть объект . не могу выстроить объекты друг за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru