|
|
|||||
Регистрация: Feb 2012
Сообщений: 205
|
плавная анимация скриптом
написала скрипт и он хорошо работает. вот только не хватает анимаций. Пыталась вставить скрипт on EnterFrame для плавного появления и исчезновения slide'ов, но отчего-то _alpha для элементов массива v[kv] на выводе даёт undefined,так же как и _х и _y. Помогите написать конкретный скрипт, пожалуйста. в коде помечено комментариями, что я собственно хочу
n = 8; kv = 1; game = this; setTimeout(go,10); rest=1; import mx.transitions.Tween; function go() { //stop(); var v:Array = new Array(n); var slideretrycount:Number = 1; for (i = 1; i <= n; i++) { v[i] = "slide" + i; } for (i = 1; i <= n; i++) { game['bt' + i].onRollOver = function() { if (kv != substring(this._name, 3, -1)) { game['bt'+kv].gotoAndStop(1); this.gotoAndStop(2); rest=substring(this._name, 3, -1)-kv; if (rest<=0){/*v[kv] плавная прозрачность с движением вверх*/} if (rest>=0){/*v[kv] плавная прозрачность с движением вниз*/} deleteslide() kv = substring(this._name, 3, -1); addslide(); setY(); } }; game['bt' + i].onRollOut = function() { if (kv != substring(this._name, 3, -1)) { this.gotoAndStop(1); } }; } function addslide() { attachMovie(v[kv],v[kv],kv); setProperty(v[kv], _x, 30); setProperty(v[kv], _y, 40); setProperty(v[kv], _alpha, 100); if (rest<=0){/*v[kv] плавное появление с движением вверх*/} if (rest>=0){/*v[kv] плавное появление с движением вниз*/} } function deleteslide() { m = v[kv]; removeMovieClip(m); } function setY() {pos=1; for (k = kv; k <= n; k++){pos++;game['bt'+k]._y=120+pos*3;} pos=1; for (k = kv; k >= 1; k--){pos++;game['bt'+k]._y=120+pos*3} } addslide(); setY(); } |
|
|||||
Регистрация: Jun 2010
Сообщений: 128
|
Для начала просто объявите этот массив не в функции, а в корне. Там, где у вас
Тогда и undefined в другой функции не будет. Ну или передавайте его в качестве параметра. |
|
|||||
Регистрация: Feb 2012
Сообщений: 205
|
объявила - всё равно свойство _alpha = undefined
|
|
|||||
Регистрация: Jun 2010
Сообщений: 128
|
Ну, тогда fla файл выкладывайте. Желательно, не в самой новой версии Adobe Flash сделанный, чтобы открыть можно было. А то так и не разберешся, где у вас что и что на что реагировать должно.
|
|
|||||
Регистрация: Feb 2012
Сообщений: 205
|
cs 5.0 подойдёт?
block1.rar |
|
|||||
Регистрация: Jun 2010
Сообщений: 128
|
Что вы хотите получить в итоге, я все равно не понял. Хотя это уже красиво, по-моему. Но обращаться к свойствам у вас нужно не
, а
, ятобы не было undefined.
|
|
|||||
Регистрация: Feb 2012
Сообщений: 205
|
чорт, спасибо.. вот жэ я тупая =(((
Добавлено через 9 часов 24 минуты Так, снова добралась до скрипта и оказалось, что ни в каком символе game у меня слайды не лежат. Трейсить я их могу банально кодом Добавлено через 9 часов 35 минут а вот выдаёт undefined Добавлено через 9 часов 49 минут function deleteslide(mc:MovieClip) { mc._alpha = 100; trace(mc._alpha) this.onEnterFrame = function() { mc._alpha -= 2; trace("new alpha: " + mc._alpha); if (mc._alpha < 0) { delete this.onEnterFrame; trace("end deleteSlide"); } } removeMovieClip(mc); } Добавлено через 9 часов 53 минуты может быть, проблема при загрузке клипа? Последний раз редактировалось Маруська; 22.10.2014 в 01:54. |
|
|||||
Регистрация: Feb 2012
Сообщений: 205
|
окей, почти разобралась с проблемой. возникла другая.
Смогла заставить работать коды RemoveSlide и addSlide только один за одним. Было бы неплохо запускать их одновременно. И как то избавиться от зависаний, которые происходят при быстром скролле по всем кнопкам. Помогите, кто чем может. Исходник вот тут block1.zip |
|
|||||
Регистрация: Jun 2014
Сообщений: 52
|
Посмотри.
|
|
|||||
1. В массиве просто текстовая строка. У ней нет прозрачности.
2. В массиве тоже самое, но использутся уже как литерал объекта. Имя. _root[arr[0]] - ссылка на объект. Можно записать как _root.ball или _root["ball"] 3. В массиве - имя объекта. Норм. 4. см. п.2. |
Часовой пояс GMT +4, время: 23:09. |
|
« Предыдущая тема | Следующая тема » |
|
|