PDA

Просмотр полной версии : Основные приёмы программированния для подключаемых Swf


Mr_Max
25.07.2005, 13:24
Ребята, здравствуйте.
Поделитетесь, пожалуста основнымы приёмами програмированния на As при использованнии подключаемых Swf-ов.

Суть проблеммы в следуйщем.
Изначально в проекте (презентация) пларировался 1 файл с каждой страницей презентации в отдельном кадре.... постепенно проект набрал умопомрачительных размеров... Заказчиком была поставленна задача организовать всё в виде подлючаемых Swf-ов, дабы максимально уменьшить размер основного "рабочего" модуля.

С подлючаемымы Swf-ами возникла проблема "невидимости" AS (поскольку подключаемые скрипты программила група людей и тестила "лишь-бы у меня работало).

Можно ли зделать так, чтоб As работал кругом? То-есть и в самом срипте, и в случае его подключения в другой крипт.

Какие есть основные приёмы кодированния в данном случае и пути решения данной проблемы?

Простите за многословность, пытался всё нормально объяснить. Надеюсь путаницу моих мыслей вы поймёте...
Не обезсудьте... я только учусь.

KUZEN
25.07.2005, 13:37
В swf в кот будешь подгружать пропиши в первый кадр _lockroot

Mr_Max
25.07.2005, 13:48
2 Kuzen
ок. спасибо.
а если есть фунции с одинакивыми именами в обоих файлах они конфликтовать не будут?
или лучше такого избегать?

KUZEN
25.07.2005, 13:53
недолжны конфликтовать ... но лучше же конечно избегать ... хотя если очень много одинаковых по структуре swf то конечноже удобнее использовать так как ты и говорил ...

dimarik
25.07.2005, 14:08
Одинаковых функций не будет =) Останется самая последняя, которая будет в последнем подгруженном мувике.
Типа, если в родителе было:
_root.myFunction = function (){
return 1+1;

};

то, если такая же штука будет в дочернем клипе,
_root.myFunction = function (){
return 5;
};
то trace(_root.myFunction ) выдаст "5";

KUZEN
25.07.2005, 14:26
Одинаковых функций не будет =) Останется самая последняя, которая будет в последнем подгруженном мувике.
Типа, если в родителе было:
_root.myFunction = function (){
return 1+1;

};

то, если такая же штука будет в дочернем клипе,
_root.myFunction = function (){
return 5;
};
то trace(_root.myFunction ) выдаст "5";
А вот так >>
В главный swf пмхаем в первый кадр
_lockroot = true;
F_trace = function () {
trace("ГЛАВНЫЙ МУВИК !!!");
};
onMouseDown = function () {
F_trace();
};
_root.createEmptyMovieClip("mc",1);
mc.loadMovie("child.swf");
и в подгружаемый пихаем
F_trace = function () {
trace("ПОДГРУЖЕННЫЙ МУВИК !!!");
};
onMouseDown = function () {
F_trace();
};
работает и тот и другой хотя названия одинаковые

dimarik
25.07.2005, 14:55
2 Kuzen
Не парься, первая функции находится в _root.F_trace, а вторая в _root.mc.F_trace; потому и работают, что в разных местах

aksios
25.07.2005, 19:40
Самое правильное, это отказаться от абсолютной адресации - _root меняем на _parent, проверяем - работает как по отдельности так и вместе. Функции дублироваться ни при каких не будут, если каждый swf в новый контейнер грузить.

KUZEN
27.07.2005, 12:27
2 Kuzen
Не парься, первая функции находится в _root.F_trace, а вторая в _root.mc.F_trace; потому и работают, что в разных местах
Я всего на всего обьяснил как сделать так чтобы функции не конфликтовали, отвечая на этот вопрос
2 Kuzen
ок. спасибо.
а если есть фунции с одинакивыми именами в обоих файлах они конфликтовать не будут?
или лучше такого избегать?
Да и я особо не парюсь (((