А что, в AS2 нельзя имплементить больше чем 1 интерфейс? вроде ж как можно... Т.е. мне совсем не нужно чтобы IExtendedForm наследовался от IForm... более того, может быть ситуация, когда его имплементит, скажем FormItem который вообще не связан с Form...
T.e. схема:

Код:
Form FormItem
[implements IForm] [implements IFormItem]
| [implements IExtendedForm]
TextForm
[implements IForm, IExtendedForm]
FormManager.getTopmostForm():IForm
// иногда может вернуть и TextForm
// в таком случае я хочу его перекастовать в IExtendedForm
formInstane.getItem(....):IFormItem
// но иногда я могу другим способом получить объект,
// который обладает тем же функционалом.
и могу его перекастовать в
IExtendedForm(formInstane.getItem(....)).getProxy()
// сам интерфейс:
interface IExtendedForm
{
function getProxy():Proxy
}
// т.е. я знаю, что я могу вызвать следующие методы
// потому как оба класса имплементят нужный интерфейс
formItem.getProxy():Proxy
textForm.getProxy():Proxy
// но так я не могу, потому что getProxy() есть не у всех
// классов наследующихся от Form
form.getProxy():Proxy