![]() |
Опять синтаксис.Функция в цикле.
Хочу замутить такую штуку -
Есть произвольный мувик прямоугольной формы - накрываю его дубликатами нарисованного прогр.прямогольника по nw штук в ширину и по nh штук в длину/т.е. как бы клетками/. Затем надо организовать разлёт этих мувиков. Для разлёта пишу функцию function raslyt1(targ) { xrand = random(20)-10; yrand = random(20)-10; this.onEnterFrame = function() { targ._xscale += 5; targ._yscale += 5; targ._alpha -= 5; targ._x += xrand; targ._y += yrand; if (targ._alpha<=0) { targ.removeMovieClip(); delete this.onEnterFrame; } }; } Для заполнения пишу функцию, в которую заразом вставляю функцию разлёта function zapolnemie(name, nW, nH, col) { nameDepth = name.getDepth(); nameHeight = name._height; nameWidth = name._width; nameX = name._x; nameY = name._y; nnn = nW*nH; this.createEmptyMovieClip("mmcc", nameDepth+1); with (mmcc) { beginFill(col, 100); moveTo(0, 0); lineTo(nameWidth/nW, 0); lineTo(nameWidth/nW, nameHeight/nH); lineTo(0, nameHeight/nH); lineTo(0, 0); _visible = 0; } for (i=1; i<=nW; i++) { for (j=0; j<nH; j++) { mmcc.duplicateMovieClip("mmcc"+i+nW*j, nameDepth+1+i+nW*j); this["mmcc"+i+nW*j]._x = nameX-nameWidth/2+(i-1)*nameWidth/nW; this["mmcc"+i+nW*j]._y = nameY-nameHeight/2+j*nameHeight/nH; this.raslyt1(this["mmcc"+i+nW*j]);//Вот здесь подлянка } } } Тестю zapolnemie(mc, 4, 4, 0xff0000); Разлетается только последний/16й/ мувик, остальные на месте. Знаю, что так по простому функцию в цикл не засунуть, а вот как - в голову не прёт. Подставьте плечо, плиз. ;) |
онентефрейм у тебя для всего свф, не для каждого квадратика
квик фикс function zapolnemie(name, nW, nH, col) { nameDepth = name.getDepth(); nameHeight = name._height; nameWidth = name._width; nameX = name._x; nameY = name._y; nnn = nW*nH; this.createEmptyMovieClip("mmcc", nameDepth+1); with (mmcc) { beginFill(col, 100); moveTo(0, 0); lineTo(nameWidth/nW, 0); lineTo(nameWidth/nW, nameHeight/nH); lineTo(0, nameHeight/nH); lineTo(0, 0); _visible = 0; } for (i=1; i<=nW; i++) { for (j=0; j<nH; j++) { mmcc.duplicateMovieClip("mmcc"+i+nW*j, nameDepth+1+i+nW*j); this["mmcc"+i+nW*j]._x = nameX-nameWidth/2+(i-1)*nameWidth/nW; this["mmcc"+i+nW*j]._y = nameY-nameHeight/2+j*nameHeight/nH; var c = this["mmcc"+i+nW*j]; xrand = random(20)-10; yrand = random(20)-10; c.onEnterFrame = function() { this._xscale += 5; this._yscale += 5; this._alpha -= 5; this._x += xrand; this._y += yrand; if (this._alpha<=0) { this.removeMovieClip();// почему крутится после removeMovieClip если убрать delete? delete this.onEnterFrame; } }; } } } zapolnemie(mc, 4, 4, 0xff0000); ЗЫ: а у меня флаш год назад отобрали злые якобы нилсены, во жизнь :eek: |
Большое конечно спасибо,
Однако фишка была вы том, что бы написать ф.raslyt1(targ) отдельно, а может и несколько функций разлёта/разных/ и по мере необходимости вставлять в ф.zapolnemie(name, nW, nH, col) Как бы вот это выкрутить? ЗЫ.При твоём варианте квадраты разлетаются синхронно, а надо чтоб xrand = random(20)-10; yrand = random(20)-10; были для каждого свои. :p Но это конечно решаемо. Вопрос всё таки в том, что бы вставлять ф-цию в цикл - мож саму ф.raslyt1(targ) переписать. Я вообще сова, утром туго соображаю, мож к вечеру сам разберусь. ЗЫ.Кто Флэш отбирает, того фэйсом об тэйбл. :D |
вставляю ваше коды и пусто.....:)
чё должно появится?:) дайте рабочий пример:) |
Сделай мувик/прямоугольный/, обзови его mc
и вставляй в кадр с мувиком код. Поверх мувика должно появится 16 прямоугольн. /красн./ и они должны разлетаться в разные стороны. |
Вложений: 1
Почему ты никогда не используешь прототипы? С ними же легче прописывать свои свойства и методы для каждого экземпляра мувика.
Вот тебе маленький намек. 2sts Как это у тебя отобрали Flash? |
Влт так примерно:
Код:
MovieClip.prototype.acts = function(){ |
Чё то или я туплю или чего, но мне кажется так:
Берешь, делаешь сколько тебе надо различных функций разлёта: function bomb1(){} function bomb2(){} ..... и т. д. Далее как хочешь, присваиваешь каждому муву по такой функцие. Параметры разлёта к примеру в функцие рандомные пусть будут, и тогда все квадраты по разному летать будут. Ну а как присвоить - легко: eval("my-Movie-Clip"+i).onEntrFrame = bomb1; или для смены соответственно другую всем присваиваешь. Наверное я опять что-то протупил. |
Цитата:
|
Тогда получай. :)
Код:
mCol = new Array(); |
| Часовой пояс GMT +4, время: 10:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.