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

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

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
По умолчанию Получить экземпляр с экземпляра.

Здравствуйте.
Есть класс который размещает объекты по установленной сетке.
Код AS3:
package me.view {
 
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
 
	import me.advicer.gui.GUI;
 
	public class PhotoBox {
 
		public function PhotoBox() {
 
		}
 
		public var item:GUI;
 
		public var view:DisplayObjectContainer;
 
		public function model(data:Object):void {
 
		}
 
	}
 
}
В качестве самих объектов приходит экземпляр класса
Код AS3:
package me.advicer.view {
 
	import me.advicer.gui.GUI;
 
	public class AlbumItem extends GUI {
 
		public function AlbumItem() {
			album_name.mouseEnabled = false;
		}
 
		override public function model(data:Object):void {
		}
	}
 
}
все в сборе выглядит так
Код AS3:
var photoBox:PhotoBox =new PhotoBox();
photoBox.item = new AlbumItem();
photoBox.view = _view;
photoBox.model(new dev.UserAlbum().get);
то-есть мне нужно AlbumItem внутри PhotoBox клонировать.
можно так?
Код AS3:
function clone( source:Object ):* 
{ 
    var myBA:ByteArray = new ByteArray(); 
    myBA.writeObject( source ); 
    myBA.position = 0; 
    return( myBA.readObject() ); 
}
или же лучше в самом классе AlbumItem создать метод создания экземпляра. Вопрос крайне прост не судите строго) Наглядное пособие будет максимально полезным.
__________________
return this...

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

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Делайте метод clone внутри класса AlbumItem
__________________
FlashPress.ru | Blog

Старый 19.06.2013, 14:39
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 3  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Цитата:
Сообщение от maincode Посмотреть сообщение
Делайте метод clone внутри класса AlbumItem
можно беглый пример?

Добавлено через 2 минуты
так?
Код AS3:
public function clone():AlbumItem {
	return new AlbumItem();
}
Добавлено через 7 минут
получается так
Код AS3:
package me.advicer.gui {
 
	import flash.display.Sprite;
	import flash.display.DisplayObject;
 
	public class GUI extends Sprite{
 
		public var _view:Sprite = new Sprite();
 
		public function GUI() {
			// constructor code
		}
 
		public function model($data:Object):void {};
 
		public function setViewer(displayObject:Sprite):void {};
 
		public function clone( source:GUI ):GUI 
		{ 
			return new GUI();
		}
	}
 
}
Код AS3:
package me.advicer.view {
 
	import me.advicer.gui.GUI;
 
	public class AlbumItem extends GUI {
 
		public function AlbumItem() {
			album_name.mouseEnabled = false;
		}
 
		override public function clone():AlbumItem {
			return new AlbumItem();
		}
 
 
	}
 
}
на что компилятор отвечает
Цитата:
D:\Program Files\workset\Advicers\me\advicer\view\AlbumItem.as, строка 11 1023: Несовместимое переопределение.
подправьте пожалуйста.
__________________
return this...

Старый 19.06.2013, 14:50
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 4  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Вы clone неправильно переписали, в GUI он возвращает и принимает объекты другого типа.
__________________
Oomph

Старый 19.06.2013, 14:58
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 5  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
понял. Свел к

Код AS3:
package me.advicer.gui {
 
	import flash.display.Sprite;
	import flash.display.DisplayObject;
 
	public class GUI extends Sprite{
 
		public var _view:Sprite = new Sprite();
 
		public function GUI() {
			// constructor code
		}
 
		public function model($data:Object):void {};
 
		public function setViewer(displayObject:Sprite):void {};
 
		public function clone():GUI 
		{ 
			return new GUI();
		}
	}
 
}
Добавлено через 6 минут
Но почему то не отображает

Код AS3:
package me.advicer.view {
 
	import me.advicer.gui.GUI;
 
	public class AlbumItem extends GUI {
 
		public function AlbumItem() {
			album_name.mouseEnabled = false;
		}
 
		override public function clone():GUI {
			return new AlbumItem();
		}
	}
}
Код AS3:
package me.view {
 
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
 
	import me.advicer.gui.GUI;
 
	public class PhotoBox extends GUI{
 
		public function PhotoBox() {
 
		}
 
		public var item:GUI;
 
		public var view:DisplayObjectContainer;
 
		override public function model(data:Object):void {
 
			addChild(item); // нет изображения
			addChild(item.clone()); // нет изображения
 
			item.x = 100;
		}
 
	}
 
}
Код AS3:
private function mouseHandler(event:MouseEvent):void {
 
			switch (event.currentTarget.name) {
				case 'closeBtn': 
					WindowsManager.close(this); 
				break;
 
				case 'localBtn': 
					ResourceManager.open(ResourceEnum.IMAGE, new ObjectPosition(ObjectPosition.ALIGN_CENTER, 572, 406, conteiner, true ).view) ; 
				break;
 
				case 'albumBtn':
 
					var photoBox:PhotoBox = new PhotoBox();
						photoBox.item = new AlbumItem();
						photoBox.view = this;
						photoBox.model(new UserAlbum().get);
 
 
					addChild(new AlbumItem()) // <- отображает 
 
				break;
 
				case 'readyBtn':
 
					_view.addChild(new Bitmap(ResourceManager.getBitmapdata(conteiner,fill_circle.x,fill_circle.y,fill_circle.width,fill_circle.height)));
 
 
				break;
			}
		}
Добавлено через 13 минут
разобрался.
Код AS3:
package me.view {
 
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
 
	import me.advicer.gui.GUI;
 
	public class PhotoBox extends GUI{
 
		public function PhotoBox() {
 
		}
 
		public var item:GUI;
 
		public var view:DisplayObjectContainer;
 
		override public function model(data:Object):void {
 
			view.addChild(item); // addChild(item);
			view.addChild(item.clone()); //addChild(item.clone());
 
			item.x = 100;
		}
 
	}
 
}
__________________
return this...


Последний раз редактировалось AlexCooper; 19.06.2013 в 15:12.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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