Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как можно создать новый экземпляр символа? (http://www.flasher.ru/forum/showthread.php?t=189323)

XMON 11.12.2012 18:14

как можно создать новый экземпляр символа?
 
как можно создать новый экземпляр символа?

пример:
создал символ в координатах x = 0, y = 0 и создал ещё один такой символ в новых координатах.
вот код в котором мне это надо:

Код AS3:

import flash.events.Event;
 
var rooms:Array = new Array
var cybers
var no_x:Number = new Number
var no_y:Number = new Number
no_x = 0
no_y = 0
 
rooms.push (new room100x100)
rooms.push (new room100x50)
rooms.push (new room150x50)
rooms.push (new room50x50)
 
addEventListener(Event.ENTER_FRAME, arrangement_of_rooms)
 
function arrangement_of_rooms(e:Event):void
{
        cybers = rooms[Math.floor( Math.random() * rooms.length )]
        addChild (cybers).x = no_x; cybers.y = no_x
no_x ++
no_y ++
}


bav 11.12.2012 19:01

Цитата:

как можно создать новый экземпляр символа?
Код AS3:

var symbol:Symbol = new Symbol();

Мама дорогая, вы по каким книгам AS3 учили?
Код AS3:

import flash.events.Event;
// Для создания нового массива можно использовать литерал [],
// а если используете оператор new, то не забывайте про скобки.
var rooms:Array = [];
// Не забывайте указывать тип переменных
var cybers:MovieClip;
// Тоже можно сразу использовать литералы для инициализации переменных
var no_x:Number = 0;
var no_y:Number = 0;
 
// Снова скобки конструктора и точки с запятыми в конце строк
rooms.push (new room100x100());
rooms.push (new room100x50());
rooms.push (new room150x50());
rooms.push (new room50x50());
 
addEventListener(Event.ENTER_FRAME, arrangement_of_rooms);
 
function arrangement_of_rooms(e:Event):void
{
        // Берем случайный клип из rooms
        cybers = rooms[Math.floor( Math.random() * rooms.length )];
        // Помещаем его наверх списка отображения
        // и меняем ему координаты
        addChild (cybers).x = no_x;
        cybers.y = no_y;
        no_x++;
        no_y++;
}

В итоге четыре клипа ползут вниз вправо. Вы этого добиваетесь?

XMON 11.12.2012 20:01

Да, спасибо.
меня всегда интересовало, зачем нужен знак - ";"? Да, в некоторых случаях он важен, а например в таком-
Код AS3:

var no_x:Number = 0;

Цитата:

Мама дорогая, вы по каким книгам AS3 учили?
по видео урокам от esyflash. По вашему мнению, это хорошие уроки?

bav 11.12.2012 20:08

Не знаю, я их не смотрел, я Мука читал. Точка с запятой действительно является необязательной в конце строки, это уже вопрос из области стиля написания кода.

Hauts 11.12.2012 20:16

Цитата:

а если используете оператор new, то не забывайте про скобки
Это же не обязательно. Но со скобками желательно :)

caseyryan 12.12.2012 10:42

Цитата:

по видео урокам от esyflash. По вашему мнению, это хорошие уроки?
Возможно и есть какие-то уроки, на которые можно обратить внимание новичку, но в основном там ужас.
Как-то ради интереса глянул несколько, честно сказать, поржал от души ) И кстати комментарии там часто довольно красноречиво характеризуют содержание уроков.
Лучше почитать книжки, чем смотреть эти уроки.
Видео уроки есть неплохие, но такие я встречал только англоязычные, созданные профессионалами. Например от lynda.com или digitaltutors и еще парочка организаций.

XMON 12.12.2012 13:23

Цитата:

В итоге четыре клипа ползут вниз вправо. Вы этого добиваетесь?
ой, нет, я ошибся. мне надо было сделать так чтоб создавался рандомный объект, потом рандомом создался ещё один объект но так, чтобы если эти объекты выбрались ещё раз, они не переходили на новые координаты а оставались на месте и создавался в новых координатах ещё такой объект.

Добавлено через 6 минут
вот пример того, как это было реализовано с помощью классов (мне надо без классов)
Код AS3:

package {
        import flash.display.MovieClip;
        public class Container extends MovieClip
        {
                private var figures:Array = new Array();
                public function Container(){
                        var figure:Figure;
                        for(var i:int=0;i<10;i++){
                                figure = new Figure();//создаем библиотечный символ, которому пролинковали класс Figure
                                figure.x = i*10;
                                figure.y = i*10;
                                addChild(figure);//добавляем в дисплей лист фигуру
                                figures.push(figure);//запоминаем фигуры в массиве
                        }
                }
        }
}


Aquahawk 12.12.2012 14:25

Цитата:

мне надо без классов
Нет не надо. Без классов - *****код. Учитесь сразу нормально. Профи может сыграть полёт шмеля на табуретке, но учась на табуретке профи не станешь.

XMON 12.12.2012 15:04

Цитата:

Нет не надо. Без классов - *****код. Учитесь сразу нормально. Профи может сыграть полёт шмеля на табуретке, но учась на табуретке профи не станешь.
поверьте, я бы с удовольствием начал писать код в классах, но на это нужно время, а у меня его нет. у меня учёба, конференции и многое другое, от всего этого я освобожусь только в конце февраля, вот тогда я начну изучать классы. моя недавняя попытка их изучить провалилась, в связи с нехваткой времени.

Aquahawk 12.12.2012 16:59

Цитата:

я бы с удовольствием начал писать код в классах, но на это нужно время
Неправда. Удосужьтесь прогуглить этот вопрос. Обсуждалось ровно столько раз сколько здесь появлялись новые люди.

XMON 12.12.2012 17:23

направда то что у меня не хватает времени?

expl 12.12.2012 17:27

Цитата:

// Для создания нового массива можно использовать литерал [],
// а если используете оператор new, то не забывайте про скобки.
На вопрос прожжёного сишника почему бы не опускать "()" и не писать просто new SomeClass,
пришлось ответить - "не по фен-шую". Ответ его устроил :)

Для однообразия чисто и потому что большинство пишет со скобками - каких-то объективных причин так делать не существует.

caseyryan 12.12.2012 23:36

Цитата:

у меня учёба, конференции и многое другое, от всего этого я освобожусь только в конце февраля
Все это звучит так, будто вы хотите, чтобы вас кто-то начал уговаривать писать в классах.
Каждый волен делать что ему хочется (в рамках закона естественно :D ).
Хотя, что-то мне подсказывает, что вся эта учеба, конференции и т.д. - это просто отговорки для самого себя, прикрывание ими не желания изучить что-то новое, или боязни того, что что-то будет неполучаться. Если хочешь что-либо сделать, всегда найдешь время. Я не знаю ни одного человека, у которого учеба реально отнимала бы все время.

Dip52 13.12.2012 01:31

Цитата:

Сообщение от XMON (Сообщение 1109368)
ой, нет, я ошибся. мне надо было сделать так чтоб создавался рандомный объект, потом рандомом создался ещё один объект но так, чтобы если эти объекты выбрались ещё раз, они не переходили на новые координаты а оставались на месте и создавался в новых координатах ещё такой объект.
[/as3]

Я правильно понимаю, что ты хочешь реализовать что-то на вроде таблицы?

* * * * *
* * * * *
* * * * *

XMON 13.12.2012 06:32

я хочу сделать так чтобы генерировался рандомный дом. есть 4 размера комнат, у них есть разные виды, подвиды и т.п. Чтобы один дом, был непохожим на другой но вид комнат - 4 а комнат в доме много. вот, не знаю как сделать так чтоб создавалась рандомная, потом рандомом создавалось ещё одна комната но так, чтобы если эти комнаты рандомом выбрались ещё раз, они не переходили на новые координаты а оставались на месте и создавались новы комнаты в новых координатах.

надеюсь вы мне поможете

iNils 13.12.2012 06:50

XMON, предложение начинается с большой буквы. Перед союзами "а" и "но" ставят запятую.

XMON 13.12.2012 07:30

русский язык, моя больная тема. мне по душе английский

Добавлено через 30 секунд
хоть я его плохо знаю

Hauts 13.12.2012 08:03

Такое ощущение, что начался сезон безграмотности на форуме.

Цитата:

я хочу сделать так чтобы генерировался рандомный дом. есть 4 размера комнат, у них есть разные виды, подвиды и т.п. Чтобы один дом, был непохожим на другой но вид комнат - 4 а комнат в доме много. вот, не знаю как сделать так чтоб создавалась рандомная, потом рандомом создавалось ещё одна комната но так, чтобы если эти комнаты рандомом выбрались ещё раз, они не переходили на новые координаты а оставались на месте и создавались новы комнаты в новых координатах.
— так вы же сами, по-сути, и описали алгоритм. Math.random() в помощь.

XMON 13.12.2012 09:34

Код AS3:

— так вы же сами, по-сути, и описали алгоритм. Math.random() в помощь.

Это я сделал. (в первом сообщение я демонстрировал этот код)

Но не знаю как сделать ещё один экземпляр символа.

Добавлено через 4 часа 25 минут
как можно сделать "не больше или равно"? (совместить != и >=)

Psycho Tiger 13.12.2012 14:35

Не больше и не равно – это меньше. А где Вы учитесь?

XMON 13.12.2012 17:14

в ДДЮТ в г.Пермь но там QB, html, VB и т.п. (даже C++ нет)
а AS 3.0 сам

как можно это реализовать?

iNils 13.12.2012 18:20

XMON, я говорил, что перед союзом "но" ставят запятую? Говорил.

XMON 13.12.2012 19:12

Вы бы лучше помогли с проблемой а не русскому учили.

iNils 13.12.2012 20:07

Бан на 2 дня.


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

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