Просмотр полной версии : Load Movie в зависимости от переменной
проблема сводящая с ума....
нужно подгрузить в клип свфку.
Гружу LoadMovie в уже существующий клип. Все грузится.
Усложняю задачу. в _root есть переменная whichclip=0;
есть кнопка которая говорит _root.whichclip=1;
и вторая кнопка _root.whichclip=2;
а в клипев имя которого "clip" такой код:
onClipEvent (enterFrame) {
if (_root.whichclip == 1) {
loadMovie("1.swf", clip);
} else if (_root.whichclip == 2) {
loadMovie("2.swf", clip);
}
}
так вот ничего не грузится, но квадратик, который нарисован в "clip" - исчезает, т.е. что-то туда загружается... но ничего нету... :(
Если я прописываю if (_root.whichclip == 1) {
loadMovie("1.swf", clip);
} else if (_root.whichclip == 2) {
loadMovie("2.swf", clip);
}
в фрейм и в ручную изменяю изначально переменную _root.whichclip, то в зависимости от числа подружается тот или иной мув...
Где я туплю!!????
А так?:)
onClipEvent (enterFrame) {
if (_root.whichclip == 1) {
loadMovie("1.swf", this);
} else if (_root.whichclip == 2) {
loadMovie("2.swf", this);
}
}
voro_bej
27.05.2003, 16:52
А почему бы тебе на кнопке не поставить
loadMovie("1.swf", clip)
Dimonius
27.05.2003, 16:57
Так не получится,
Во первых по ентерфрейм получится бесконечный ряд загрузок (поставь в if{} код trace(); и поймешь), что клип загружается, но не успевает отобразится.
На мой взгляд лучше производить загрузку выгрузку через кнопки, никто не знает ведь какая скорость будет у просматривающего.
Можно попробовать через clipEvent (data){}, но здесь я неуверен еще не успел поюзать.
В общем мне этот вопрос интересен, т.к. я недавно с этим сталкивался, но в принципе выкрутился по другому - это было не принципиально.
ma2aphaka
27.05.2003, 17:07
loadMovie( eval(_root.peremennaya+".swf"),clip);
Techmaker
27.05.2003, 17:25
onClipEvent (enterFrame) {
if(!_root.load_test){
if (_root.whichclip == 1) {
loadMovie("1.swf", this);
} else if (_root.whichclip == 2) {
loadMovie("2.swf", this);
}_root.load_test=true
}
}
а к коду на кнопке добовь:
_root.load_test=false
;)
Dimonius
27.05.2003, 17:30
Действительно что тебе мешает положить в кадр или на кнопку стандартный код, предложенный ma2aphaka, ну или даже с конструкцией if{}, если влом переназывать файлы.
Однако вопрос интересен, как сделать это с onClipEvent{}, кто-нить знает? у меня все нормально работает только на mouseDown/up и keyDown/up, все остальное кривит?
Проскочила тут идея создать клип код-контейнер, который бы проверял переменную и загружал-бы нужный клип, но думаю что эта идея частная, и вообще-то наверно больно громозкая.
Да в том то и дело, что интересно как через Clip Event а через кнопку нельзя, потому что кнопок много, каждая меняет переменную, но текст свфка должна подгрузится только после выезда на сцену клипа, в который я и пытался вставить клипивент!
нельзя грузить на onClipEvent (enterFrame)!
Напиши функцию в первом фрэйме, которая будут грузить в зависимости от активности определенных переменных конкретные мувики в соответствующие таргеты и вызывай ее(функцию) с кнопок.
Techmaker
27.05.2003, 19:35
а чем вам мой вариант не нравится? - он же рабочий.. :)
llllllllll
27.05.2003, 19:45
Оригинал написал(а) Techmaker
а чем вам мой вариант не нравится? - он же рабочий.. :)
На костылях тоже ходят ... =)))
Dimonius
27.05.2003, 19:51
Вариант великолепный
Спасибо тебе Techmaker.
У меня все заработало (чето стормозил децел), да собственно я и не думал особо над этим тогда.
Techmaker
27.05.2003, 20:01
2llllllllll: На костылях тоже ходят ... =)))
даже летают :)
iLoveYou
27.05.2003, 21:55
2Techmaker
В твоем случае, это не костыли, даже не носилки - а коляска умственного инвалида. :)
2Dimonius
Советую приглядеться к варианту ma2aphaka - его только мааленько обмозговать.
sergwizard
28.05.2003, 00:31
через кнопку нельзя, потому что кнопок много, каждая меняет переменную, но текст свфка должна подгрузится только после выезда на сцену клипа, в который я и пытался вставить клипивент!
Если клип "выезжает" на сцену, значит, у него есть свой таймлайн. Вот и вставь в последний фрейм этого таймлайна вызов функции, выполняющую загрузку нужного файла. Вообще-то не рекомендуется давать только численные имена. Обзови мувики как-нибудь "mov1.swf", "mov2.swf" и тогда все будет примерно так:
1-й фрейм _root:
function loadIt(whichclip){
_root.clip.loadMovie("mov"+whichclip+".swf",1);
}
Последний-й фрейм MC clip:
root.loadIt(_root.whichclip);
На кнопки вешай:
On(release){
_root.whichclip = 1; // или другие номера, нужные номера
clip.gotoAndPlay(2);
}
MC будет проигрываться, натыкаться на функцию, проверять значение _root.whichclip и грузить нужный мувик.
Но тут тебе надо учесть, что, загружая мувик в "clip", ты тем самым замещаешь "clip" этим новым мувиком. И, если он однофреймовый, то следующая кнопка уже не сработает.
Поэтому, лучше грузить в какой-нибудь таргет в MC "clip". А иначе тебе все mov*.swf надо будет делать по структуре такими же, как и сам MC "clip" и прописывать в фреймах вызов функции root.loadIt(_root.num);
А вообще, если все делать по-уму, то надо загружать все мувики одновременно. Пока смотришь один, - другие уже подгрузятся, и не надо будет их ждать.
А вот очень коротко и универсально по-моему:)
for (i=1; i<3; i++) {
eval("but"+i).onRelease = function() {
n = this._name.toString();
loadMovie("film"+n.slice(3)+".swf", _root.clip);
};
}
sergwizard
28.05.2003, 01:15
Может быть это извращение и универсальное, но ты не заметил одну важную вещь:
а через кнопку нельзя, потому что кнопок много, каждая меняет переменную, но текст свфка должна подгрузится только после выезда на сцену клипа, в который я и пытался вставить клипивент!
ну я так понял, что переменные он ввел имено для того чтоб определять ифом какой фильм грузить....а тут они не нужны, номер подгружаемого фильма вытекает из _name кнопки...кнопок может быть скоко угодно и всегда будет грузиться соответствующий свф. Ну а то что "после выезда на сцену клипа"... это определяется одним флагом, да и все помоему...
sergwizard
28.05.2003, 02:08
А я так понял, что он хочет загружать мувики скриптом из этого клипа, а в него посылать только переменные. Флаг тут не поможет. Ты же хочешь проверять, выдвинулся ли полностью "clip" или нет, а он хочет заставить его выдвигаться кнопкой. И той же кнопкой передавать ему переменные.
Но, мы можем спорить сколько угодно. :) Пусть он сам скажет, чего хочет.
Тогда другой изврат:)
_root.onEnterFrame = function() {
if (clip._currentframe == clip._totalframes-1) {
loadMovie("film"+_root.whichclip+".swf", _root.clip);
}
};
for (i=1; i<3; i++) {
eval("but"+i).onRelease = function() {
_root.clip.play();
_root.whichclip = this._name.slice(3);
};
}
sergwizard
28.05.2003, 04:56
Симпатичный изврат. :)Очень даже приемлемый. Осталось только посоветовать Vrefr(у) грузить не в "clip", а в другой таргет.
Но я бы – все-таки – остановился на одновременном подгрузе всех внешних мувиков.
Techmaker
28.05.2003, 16:19
2Sergey"iLoveYou" В твоем случае, это не костыли, даже не носилки - а коляска умственного инвалида. :)
по количеству твоих ответов связанных с темой топа - можно предположить какой ты инвалид... :D
_root.whichclipOld = 0;
_root.whichclip= 0;
на кнопке:
on(press){
_root.whichclip=1;
}
на клипе:
onClipEvent(enterFrame){
if(_root.whichclipOld!=_root.whichclip)
_root.whichclipOld=_root.whichclip;
loadMovie(...);
}
}
iLoveYou
29.05.2003, 20:55
Оригинал написал(а) Techmaker
по количеству твоих ответов связанных с темой топа - можно предположить какой ты инвалид... :D
по качеству твоих ответов, связанных с темой топа, можно предположить - какой ТЫ инвалид...
Ой, :) А мне почему то перестали приходить сообщения о пополнении ответов! :(
2sergwizard: ты был прав в определении моих желаний! Всем спасибо за ответы! Буду разбираться, хотя я уже сделал через фреймы...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.