PDA

Просмотр полной версии : Shared Library работает непредсказуемо


solo19770701
15.07.2008, 20:15
Всем доброго времени суток. Есть вопрос. Создаю файл в который закидываю несколько mp3, movieClip и т.д. В нем через Linkage Properties задаю для каждого Export for runtime sharing, пишу в Identifier: имя и в URL: указываю имя файла к примеру shared.swf. Захожу в основной клип, делаю Import - Open External Library перетаскиваю нужные мне клипы в основной клип и в Linkage пишу: Identifier: тож же что и в библиотеке, ставлю галку на Import for runtime sharing, и URL: shared.swf (название файла библиотеки). Оба файла в одной директории. Но вот беда, когда в основном клипе файле пишу
this.attachMovie("shared_graphics_id", "something", 2);
or
var my_sound:Sound = new Sound();
my_sound.attachSound("logoff_id");
my_sound.start();
реакции НОЛЬ. Индефикатор не работает. НО, если я грубо брошу клип на основную линейку, то при Ctr+ Enter, клип появляется в двойном экземпляре. С музыкой, тоже самой, приатачить не получается, но если просто поместить на основную врем. линейку, то музыка играет. Что не так делаю?:eek:
Я опирался на вот этот пример http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14767&sliceId=1 , исходник скачал, первый раз он работал, но потом я немножко с ним поработал, и все ничего не помогает.

chingachgoog
15.07.2008, 20:47
Прикрепите лучше ваши флашки, чтобы не гадать.

solo19770701
16.07.2008, 05:53
to chingachgoog: спасибо что откликнулся. Я нашел ответ. На одном забугорном сайте прочел, что бы все работало надо создать пустой клип в файле с библиотекой и бросить его на временную линейку в основном клипе. После этого все заработало. Почему это происходит, там не обьяснили, но после проведения этого шаманского действа :bb:все заработало. Вобщем вот так вот. Может кому это и поможет.
Но у меня появился другой вопрос. Кто нибудь знает как зациклить 3 функции, setInterval не подходит. Нужно что бы с интервалом в 2000мс повторялись три функции, к примеру functionOne, functinTwo and functionThree а потом все с начала. а?:moder:

Волгоградец
16.07.2008, 10:26
Почему setInterval () не подходит? Если так, то тогда и setTimeout () не подойдет. getTimer () остается.

crazyone
16.07.2008, 13:22
Почему setInterval () не подходит? Если так, то тогда и setTimeout () не подойдет. getTimer () остается.

Это такой тонкий юмор?

setInterval не подходит
Подходит, конечно же. Подводить просто правильно нужно.

executeFunction=function(){
farr[fnum]();
fnum=(fnum+1)%farr.length;
}

functionOne=function(){
trace("One");
}
functionTwo=function(){
trace("Two");
}
functionThree=function(){
trace("Three");
}

var farr=new Array(functionOne,functionTwo,functionThree);
var fnum=0;
var loopInt=setInterval(executeFunction,200);

solo19770701
16.07.2008, 18:19
to crazyone: Спабибо. :) Я до этого не додумкался. Я пытался интервал в интервал засунуть, а последний интервал привязать к первому немог , поэтому и скзазал что setInterval не подходит. Оказывается, подходит. Мои извинения.:drinks:

Нашел глюк во Флеше, а может и не глюк. Пишу простенькие функции
functionOne=function():Void
{
trace("One");
slide01._alpha = 100;
slide02._alpha = 0;
slide03._alpha = 0;
_root.attachMovie("workShader", "shader01", _root.getNextHighestDepth());
trace(shader01);

functionTwo=function():Void
{
trace("Two");
slide01._alpha = slide03._alpha = 0;
slide02._alpha = 100;
_root.attachMovie("workShader", "shader01", _root.getNextHighestDepth());
tra
}
и пускаю их по кругу. Все работает самогонно. НО, стоит только добавить флаш компонент, к примеру кнопу. То флеш сходит сума. shader01 вместо того что бы появлятся один раз и исчезать (в нутри этого клипа я поставил removeMovieClip(this) в конце), начинает появлятся и исчезать, и с каждым новым кругом это увеличивается в два раза. Удаляю компоненты, и все нормально. Мне кажется, каким то образом компоненты имеют свой собственный счетчик (что то типа onEnterFrame), и он каким то образом перекрывается с setInterval. Кание нибудь идеи.