![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Тема навеяна чтением Adobe AIR Bible, в главе 15 (стр. 285) приводится пример класса Config, который является синглтоном, и свойства которого (названия и значения) берутся из XML-файла. Config наследуется от класса flash.utils.Proxy, и в нем переопределяется метод getProperty таким образом:
Я скопипастил код из книги и он у меня не сработал, создаваемые таким образом свойства выдают ошибку при обращении к ним. Немного подумав, я понял что прокси тут вообще не нужен, и написал свою реализацию этого класса, просто сделав его динамическим. Но остался вопрос к более опытным товарищам - почему не сработал вариант с прокси? Прилагаю проект сделанный в FD, в котором 2 конфигкласса (ConfigProxy - вариант из книги, не работает, ConfigDynamic - мой вариант с динамическим классом, работает). Ну и в догонку еще одни вопрос, возможно заслуживающий отдельной темы, если кто то знает еще способы сборки классов из XML, и варианты полезного применения этого, будет здорово если вы ими поделитесь. Заранее спасибо1 |
|
|||||
|
.
|
Что-то вы не все методы flash_proxy переопределили
Error: Error #2091: Класс Proxy не поддерживает hasProperty. Он должен быть заменен на подкласс. at Error$/throwError() at flash.utils::Proxy/http://www.adobe.com/2006/actionscript/flash/proxy::hasProperty() at Main/onConfigProxyInit()[C:\Users\ODevyatko\Desktop\MyProjects\Config\ConfigTest\src\Main.as:35] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at ConfigProxy/dispatchEvent()[C:\Users\ODevyatko\Desktop\MyProjects\Config\ConfigTest\src\ConfigProxy.as:90] at ConfigProxy/parseXML()[C:\Users\ODevyatko\Desktop\MyProjects\Config\ConfigTest\src\ConfigProxy.as:135] at ConfigProxy/onXMLLoadSuccess()[C:\Users\ODevyatko\Desktop\MyProjects\Config\ConfigTest\src\ConfigProxy.as:116] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at flash.net::URLLoader/onComplete() |
|
|||||
|
Эта ошибка выкидывается, если раскомментировать эту строчку (т.е. проверить есть ли такое свойство):
если же просто обратиться к свойствам выкидывается такая ошибка: А вообще я подчищенную версию проекта выложил, с переопределением методов Proxy я поигрался вдовль, но заставить заработать этот класс мне так и не удалось |
|
|||||
|
.
|
override flash_proxy function getProperty(value:*):* { //делает всю магию: создает свойство и придает ему значение из xml return xml.property.(@name == String(value)).@value; } И еще |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:45. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|