dark256
14.12.2010, 18:16
В ООП я полный чайник, по мере сил пытаюсь разобраться, но выходит плохо. Каких-то винтиков видмо не хватает у меня в сером процессоре. Всвязи с чем вопрос - что это такое происходит?
Итак п.1. пишем класс с ОДНОЙ функцией.
class serv
{
static function HEL1()
{
trace("Hello World")
}
}
Создаю ONE.SWF.
Код внутри:
serv.HEL1()
Создаю TWO.SWF.
Код внутри тот же самый.
Далее MAIN.SWF грузит в себя через МКЛ сначала ONE.SWF, потом , по окончании загрузки, TWO.SWF.
По окончании каждой загрузки получаю свои хэлловорлды:
Hello World
Hello World
Далее ввожу в класс еще одну функцию:
class serv
{
static function HEL1()
{
trace("Hello World")
}
static function HEL2()
{
trace("Hello iNils")
}
}
Модифицирую содержимое TWO.SWF:
serv.HEL2()
Заливаю НОВЫЙ перекомпиленный TWO.SWF на сервер и после запуска получаю:
Hello World
undefined
Если теперь перекомпилить и перезалить ONE.SWF, то все нормально:
Hello World
Hello iNils
Что при этом получается?
Первая загруженная и запущенная СВФ где-то регистрирует класс SERV и после этого все, что загружено после - работает только с методами этого первого класса? Но ведь локально сама по себе каждая свф-ка нормально отрабатывает все методы класса! Они же в нее вкомпилены?
Как подгруженный клип может изначально блочить данное имя, инстанс или что это такое для всех последующих клипов, в которых так и так этот метод уже вкомпилен?
То есть я эту багу нашел, но теперь при добавлении новых функций - мне приходитя перекомпиливать и перезаливать ВСЕ свф-ки, работающие с методом класса SERV.
Это как-то можно вылечить, или что ж я не так делаю? :)
А ну и естсесвнно что локально на компе - все рабоатет. Удаленно - нет. Сандбокс молчит.
Итак п.1. пишем класс с ОДНОЙ функцией.
class serv
{
static function HEL1()
{
trace("Hello World")
}
}
Создаю ONE.SWF.
Код внутри:
serv.HEL1()
Создаю TWO.SWF.
Код внутри тот же самый.
Далее MAIN.SWF грузит в себя через МКЛ сначала ONE.SWF, потом , по окончании загрузки, TWO.SWF.
По окончании каждой загрузки получаю свои хэлловорлды:
Hello World
Hello World
Далее ввожу в класс еще одну функцию:
class serv
{
static function HEL1()
{
trace("Hello World")
}
static function HEL2()
{
trace("Hello iNils")
}
}
Модифицирую содержимое TWO.SWF:
serv.HEL2()
Заливаю НОВЫЙ перекомпиленный TWO.SWF на сервер и после запуска получаю:
Hello World
undefined
Если теперь перекомпилить и перезалить ONE.SWF, то все нормально:
Hello World
Hello iNils
Что при этом получается?
Первая загруженная и запущенная СВФ где-то регистрирует класс SERV и после этого все, что загружено после - работает только с методами этого первого класса? Но ведь локально сама по себе каждая свф-ка нормально отрабатывает все методы класса! Они же в нее вкомпилены?
Как подгруженный клип может изначально блочить данное имя, инстанс или что это такое для всех последующих клипов, в которых так и так этот метод уже вкомпилен?
То есть я эту багу нашел, но теперь при добавлении новых функций - мне приходитя перекомпиливать и перезаливать ВСЕ свф-ки, работающие с методом класса SERV.
Это как-то можно вылечить, или что ж я не так делаю? :)
А ну и естсесвнно что локально на компе - все рабоатет. Удаленно - нет. Сандбокс молчит.