|
|
|||||
Получить экземпляр с экземпляра.
Здравствуйте.
Есть класс который размещает объекты по установленной сетке. 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 { } } } 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 { } } } var photoBox:PhotoBox =new PhotoBox(); photoBox.item = new AlbumItem(); photoBox.view = _view; photoBox.model(new dev.UserAlbum().get); можно так? или же лучше в самом классе AlbumItem создать метод создания экземпляра. Вопрос крайне прост не судите строго) Наглядное пособие будет максимально полезным.
__________________
return this... |
|
|||||
Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
|
Делайте метод clone внутри класса AlbumItem
__________________
FlashPress.ru | Blog |
|
|||||
можно беглый пример?
Добавлено через 2 минуты так? Добавлено через 7 минут получается так 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(); } } } 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(); } } } Цитата:
__________________
return this... |
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Вы clone неправильно переписали, в GUI он возвращает и принимает объекты другого типа.
__________________
Oomph |
|
|||||
понял. Свел к
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(); } } } Но почему то не отображает 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(); } } } 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; } } } 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; } } разобрался. 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. |
|
« Предыдущая тема | Следующая тема » |
|
|