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

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

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

Регистрация: Feb 2010
Сообщений: 7
По умолчанию Как сделать копию класса.

Я новичок в АС3, но имею большой опыт в С++. Пишу на Flixel Framework. Короче, вопрос. Имеется класс Stone (для примера) c загруженной картинкой. Надо сделать массив таких Stone. Если делать так как я пока умею, то картинка будет загружатся для каждого элемента массива. Это плохо. Надо сделать так, что бы в массиве были копии экземпляра Stone. Как это сделать ?

Старый 15.03.2010, 12:03
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 2  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
myStone:Stone = new Stone();
а сорри не понял сразу, вот -
http://racer242.blogspot.com/2008/10...bject-as3.html


Последний раз редактировалось AlexDesinger; 15.03.2010 в 12:07.
Старый 15.03.2010, 18:49
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 3  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
по хорошему, надо в Stone сделать метод clone, который будет создавать новый объект класса Stone с нужными свойствами, например

Код AS3:
public function clone():Stone
{
var stone = new Stone(this.param1,this.param2); // тут надо смотреть что делает реально конструктор
stone.id= this.id;
stone.bmpd = this.bmpd.clone() // если нужен клон битмапдаты
// или
stone.bmpd = this.bmpd // если достаточно ссылки.
return stone;
}
__________________
Отряд Котовскага

Старый 15.03.2010, 22:50
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
По-хорошему у нас нужно применять GOF-паттерн Prototype. И, как правильно указал камрад Котяра, оформить при нем метод clone(); Кстати, ваш путь - труЪ, поддерживаю.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.03.2010, 23:52
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 5  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
не, похорошему - нада написать в Adobe, чтобы они, черт возьми, сделали метод duplicateMovieClip!!!

Старый 16.03.2010, 11:38
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
а зачем? вот например в классе Stone мне нужно продублировать элемент - создав ему одинаковый id и одинаковую ССЫЛКУ на битмапдату, а не дублировать её полностью. в другом классе мне нужно будет клонировать и битмапу тоже итп..
программист сам должен решать что ему надо при клонировании.
__________________
Отряд Котовскага

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

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

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


 


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


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