Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   DisplayObject implements IMyInterface (http://www.flasher.ru/forum/showthread.php?t=124960)

s8000_1 13.05.2009 16:09

DisplayObject implements IMyInterface
 
Мне нужно передать функции DisplayObject который одновременно реализует мой интерфейс. Т. е. есть два класса:
Код AS3:

MyDisplayObject1 extends DisplayObject implements IMyInterface

и
Код AS3:

MyDisplayObject2 extends DisplayObject implements IMyInterface

которые может ловить функция:
Код AS3:

function myFunc(par:какой_то_тип_или_интерфейс):void{
  super.addChild(par);
  par.функция_интерфейса();
}

Можно ли тут обойтись без оператора as внутри функции?

r_r_f_r 13.05.2009 16:12

Код AS3:

super.addChild(par as DisplayObject);


s8000_1 13.05.2009 16:14

r_r_f_r, прочитайте внимательно вопрос :)

r_r_f_r 13.05.2009 16:19

Вроде прочитал:)

И нужно приводить к DisplayObject'у, если конечно "какой_то_тип_или_интерфейс" - это интерфейс, если явно укажешь класс от DisplayObject то соответственно не надо.

silin 13.05.2009 16:44

можно унаследоваться от общего MyDisplayObj extends DisplayObject implements IMyInterface и в par передовать его
только нужен ли тогда будет интрфейс ? :)

Dimonte 13.05.2009 16:47

Сделайте абстрактный класс MyAbstractDisplayObject, который будет наследовать DisplayObject и реализовывать ваш интерфейс. Конкретные классы сделайте наследниками абстрактного, в функции принимайте объекты абстрактного класса.

s8000_1 13.05.2009 16:58

silin, Dimonte это да, решение, интерфейс не нужен будет при этом.
Но проблема в том, что у меня эти два класса отнаследованы от не связанных между собой классов, наследующих DisplayObject.
Видать, везде придется лепить as... Ну или сделать 2 свойства класса, в котором работает эта функция, одно реализует интерфейс, другое - DisplayObject.

etc 13.05.2009 18:10

Напишите свой customAddChild :)

r_r_f_r 13.05.2009 18:32

Цитата:

Сообщение от __etc (Сообщение 819512)
Напишите свой customAddChild :)

Принимающий IDisplayObject (который самому писать):)

s8000_1 13.05.2009 18:35

оффтоп: очень не хватает того, чтобы DisplayObjeсt реализовывал IDisplayObject, жаль, что его нет :(


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

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