Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Основные приёмы программированния для подключаемых Swf (http://www.flasher.ru/forum/showthread.php?t=67110)

Mr_Max 25.07.2005 13:24

Основные приёмы программированния для подключаемых Swf
 
Ребята, здравствуйте.
Поделитетесь, пожалуста основнымы приёмами програмированния на 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

Цитата:

Сообщение от dimarik
Одинаковых функций не будет =) Останется самая последняя, которая будет в последнем подгруженном мувике.
Типа, если в родителе было:
_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

Цитата:

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

Я всего на всего обьяснил как сделать так чтобы функции не конфликтовали, отвечая на этот вопрос
Цитата:

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

Да и я особо не парюсь (((


Часовой пояс GMT +4, время: 11:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.