PDA

Просмотр полной версии : Проверите на существование объекта в бибилотеке


motoroller
29.12.2010, 23:07
Мне надо проверить существует ли в библиотеке объект
Елси объект не сущетсввует то подставить объект по дефолту иначе выбрать из библиотеки



var iconsrc = (getDefinitionByName(externalData + "Icon")) ? externalData + "Icon" : "defaultIcon";


Вот эта конструкция не работает ...
ПОмогите

iflamberg
29.12.2010, 23:27
var iconsrc:*;
try {
iconsrc = getDefinitionByName(externalData + "Icon");
} catch (err:Error) {
iconsrc = getDefinitionByName("defaultIcon")
}

как-то так

motoroller
29.12.2010, 23:37
ReferenceError: Error #1065: Переменная [class jpgIcon] не определена.
at global/flash.utils::getDefinitionByName()
at Function/<anonymous>()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()


Добавлено через 1 минуту
Причем jpgIcon, есть точно в библиотеке

iflamberg
29.12.2010, 23:43
Я дал вам рабочую конструкцию. В каком месте возникает ошибка? Внутри catch блока?

motoroller
29.12.2010, 23:45
Решено спасибо

Добавлено через 31 секунду
Ваша констукция оказалась верной

Psycho Tiger
29.12.2010, 23:49
Пацанско!
getDefinitionByName абсолютно то же самое, что и ApplicationDomain.currentDomain.getDefinition. А это значит что нам предоставляют замечательный метод ApplicationDomain.currentDomain.hasDefinition, который бы по всей логике должен был бы быть эквивалентен несуществующей функции hasDefinitionByName... но чего нет, того нет.

iflamberg
29.12.2010, 23:55
Да, точно, есть такое. Не подумал.