![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 1,667
|
ну собственно заголовок и есть вопрос.
Я вот что-то сообразить не могу... Подробнее - есть несколько текстовых полей в которых должен меняться текст - таким образом появляется одни текст, с alpha=0 до 100 и обратно уходит в альфу с некоторого момента его появления например alpha=30 начинает в другом текстовом поле появляться другой текст ну и т.д. т.е. единорвременно должно быть несколько текстов на сцене сам текст береться из массива поля не могу создавать программно если что... т.е. могу но думаю что скорее всего не стоит... |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну если не можешь программно, делай ручками…
Я не понимаю твоего вопроса. |
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 1,667
|
ручками плохо, потому что их много...
ну смотри есть положим 10 текстовых полей с именами tf1 ... tf10 положим в onEnterFrame я запускаю смену альфы для первого как я описал от 0 до 100% мне нужно через некоторое время запустить у второго, затем третьего я не врубаюсь как всем сразу запустить такое т.е. понятно что можно написать к примеру i++; tf1._alpha = i; . . . tfN._alpha = i - 100; но это как то тупо и некрасиво.... |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Циклом побегать? Поставить проверку на _alpha?
В чём проблема-то? for .. in на худой конец. |
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 1,667
|
решил вчера таки
тоже правда через ж...у хитрую функцию с зависимостью от номера мувика написал, имеетца в виду математическую |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Цитата:
добаляеш свойство, cсылающееся на следующего в цепочке. Говоришь "первый.прячься();" В функции прячься() стоит проверка на какоето условие. Например так: если(пора)this.сосед.прячься(); "сосед" в данном случае - ссылка на объект. Вариант 2 похож, назовем его "каждый знает имя соседа". Каждое экземпляр прописан в доме. "сосед" в данном случае - строка. Код примерно такой: если (пора) дом-где-мы-прописаны[this.сосед].прячься(); Вариант 3 "у каждого по-разному работают часы". Выставляем каждому временной сдвиг и сажаем всем одновременно разный timeOut на вызов этого "прячься" |
|
|||||
|
Modus ponens
|
я кажется понял, что же нужно сделать...
как по мне - саое простое решение - запускать 1 онентерфрейм и в switch'e проверять что же именно нужно сделать. Примерно так: var toDo:Number=0;
_root.onEnterFrame = function(){
switch(toDo){
case 1:
myFunction1();
break;
case 2:
myFunction2();
break;
case 3:
myFunction3();
break;
}
}
Либо значение toDo можно менять в онЭнтерФрейме - тогда последовательно заполняя варианты switch'a получится своего рода сценарий типа: сейчас играем кадр №1, значит нужно запустить функцию №1, дошли до кадра №21 - запускаем следующую функцию, и так на сколько фантазии хватит =) Еще вариант - сложить все функции в один массив и вызывать их по номеру. Т.е. любая возможная коллизия сопровождается сменой текущего индекса массива, откуда и нужно взять функцию. Но, вообще-то было бы лучше видеть пример, для чего это нужно. А вдруг там всего 2-3 функции и можно все сделать простыми if(){}else{}...
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Можно и так, только неизящно. Энтерфрейм тут тож вроде не причем. Лучше код на мувик вешать, примерно так:
//где-то на таймлайне
fuction fadeOut(){
clearInterval(this.fadeOutInterval);
if(this._alpha > 0){
this._alpha -= 2;
this.fadeOutInterval = setInterval(fadeOut, 20);
}else{
this._visible = false;
}
if(this._alpha >30 && this._alpha<= 32){
//пора дергать соседа
this.brother.fadeOut();
}
}
attachMovie("clip1", "clip1", 1, {textId:0, fadeOut:fadeOut });
attachMovie("clip2", "clip2", 2, {textId:0, fadeOut:fadeOut });
attachMovie("clip3", "clip3", 3, {textId:0, fadeOut:fadeOut });
clip1.brother = clip2;
clip2.brother = clip3;
clip3.brother = clip1;
//в нужный момент:
clip1.fadeOut();
Точно так же пишется fadeIn(). Все должно работать. Цитата:
Последний раз редактировалось Kikasso; 19.10.2006 в 09:27. |
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
а если их много? лучше братьев именовать по очереди да и все..1.2.3.4 итд
просто поставить условие если последний то запускать первый вот и все, а так прибавлять единицу )) |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
2 motor4ik: Все прекрасно будет работать, пока нам не потребуется изменить порядок.
Допустим, у нас открыт 5-й клип. Приложение интерактивно. Юзер кликнул мышкой на кнопке, и его интересует 10-й клип. Я преспокойненько назначаю 5-му следующего clip5.brother = clip10; и запускаю тот же код, а что ты сделаешь? P.S. немножко неправильно, как я могу знать что открыт именно 5-й? Значит надо чтобы клип открывшись говорил такую фразу _root.activatedClip = this; тогда код на кнопке: _root.activatedClip.brother = clip10; _root.activatedClip.fadeOut(); P.P.S. activatedClip лучше чтобы был строкой, тогда за ним можно будет нормально watch`ить и автоматически запускать смену клипа. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|