Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   вопрос на счет использования Enterframe (http://www.flasher.ru/forum/showthread.php?t=41710)

Fapser 09.01.2003 16:18

вопрос на счет использования Enterframe
 
Народ, делаю звездное небо с dublicateMovieClip и записываю такой код в звезду, эффект такой звезды мигают как угорелые, а я хочу сделать чтобы каждая звезда появлялась из альфы до 100% и обратно исчезала, вот:

onClipEvent(enterFrame){

duplicateMovieClip ("_root.zz.z", "z"+i, i)

eval("_root.zz.z"+i)._alpha=0;
eval("_root.zz.z"+i)._alpha=a;
a++;
eval("_root.zz.z"+i)._x=Math.random()*600+50;
eval("_root.zz.z"+i)._y=Math.random()*600+50;

}

я понимаю что enterframe щелкает каждый кадр, так может быть есть альтернатива?

Заранее благодарен.

Fapser 09.01.2003 16:20

или я что-то не то делаю? :(

Max N Chubin_ 09.01.2003 16:31

гм...
 
не майся...
чесс слово не стоит так делать! Особенно если кроме неба у тебя будет еще что нть на экране! ;)
вообще игра с альфой дело тормозное, а када это происходит со множеством объектов то ваще караул!
Совет такой:
сделай в клипе анимацию звезды (мигание кадров на 10-30). потом делай duplicateMovieClip(), НО!!!
1 - duplicate сделай только один раз при старте и звезды будут мигать сами собой
2 - чтобы они не одновременно мигали вставь код:

duplicateMovieClip ("_root.zz.z", "z"+i, i)
eval("_root.zz.z"+i).gotoAndPlay(random(30));

где число "30" в random(30) - есть одщее число кадров в клипе звезды.

alber 09.01.2003 16:40

Max!!! Ты меня слышишь. Загляни пожалуйста на мышиный вопрос.

Fapser 09.01.2003 16:40

пробую

Fapser 09.01.2003 16:43

мигание кадров на 10-30 -- то есть мигание, ?

Fapser 09.01.2003 16:50

мигание типа 1 кадр со звездой, 2 - ой пусто, 3-тий со звездой, 4 пустой и т.д. до 10 -30???

Max N Chubin_ 09.01.2003 17:32

хе хе хе хе
 
Вложений: 1
развеселил!
вот примерчик...

Fapser 09.01.2003 17:38

Вложений: 1
и вот что получилось..:(

Max N Chubin_ 09.01.2003 17:52

ну ты блин даешь!
 
мне шоб код отыскать пришлось открывать Movie Explorer :D :D :D

ну Бог с ней со структурой (хотя мой препод по алгоритмированию наверное застрелился бы от такого алгоритма. да так ему и надо! ;) )... ты используешь переменную i для создания нового экзапляра звезды. дык а наращивать то i где то надо??? и кол-во звезд тоже нужно регулировать и мигание клипа мягко говоря нервное...
короче смотри мой пример...
там все прозрачно...
кстати тут идея пришла...
делать звезды в пустом клипе и размещать их кругом. а круг потом потихоньку вращать...

Fapser 09.01.2003 18:08

спасибо огромное Макс, видно еще пока нет виденья flash-a со стороны, пытаемся, вот вопрос:

nam="z"+t; < - это типа конкантенация?
scale=random(50)+50; - объясни эту запись, хотя интуитивно понимаю изменение размера сл. обр. от 50 до 100?

_root.zz.z.duplicateMovieClip(nam,t,

вот дальше не как в учебнике :( не понятно что делаешь только догадываюсь..
{_x:random(450),_y:random(450),_rotation:random(90),_xscale:scale,_yscale:scale});
_root[nam].gotoAndPlay(random(30));
}

Max N Chubin_ 09.01.2003 18:37

Вложений: 1
nam="z"+t; < - это типа конкантенация?
типа да. создаем имена (z1,z2,z3...)

scale=random(50)+50; - объясни эту запись, хотя интуитивно понимаю изменение размера сл. обр. от 50 до 100?
именно так. к числу 50 прибавляем случайное число в диапазоне от 0 до 50.

_root.zz.z.duplicateMovieClip(nam,t,вот дальше не как в учебнике не понятно что делаешь только догадываюсь..
{_x:random(450),_y:random(450),_rotation:random(90),_xscale:scale,_yscale:scale});
у duplicateMovieClip 2 вида записи см. мануал
я использую второй, в нем разрешается последним параметром в скобках {...} определить свойства и переменные дубликата объекта. я задаю здесь позицию клипа. его поворот и масштаб. форма записи такая:
_root.clip.duplicateMovieClip(новое имя, глубина,{свойство: значение}); вместо знака "=" используется двоеточие.


_root[nam].gotoAndPlay(random(30));
запускаю новый клип не с первого кадра а со случайного из 30 имеющихся.

См. вложение. Сделал вращение.
хе хе а все таки она вертится! ;)

efim 09.01.2003 18:49

scale=random(50)+50; - объясни эту запись, хотя интуитивно понимаю


это рандом от 50 плюс 50 тоесть

_x:random(450) nj;тождественно _x=random(450)

тоесть так не надо перечислять к чему относитсяэто

к акждому свойству

опс :D :o опаздал

Max N Chubin_ 09.01.2003 19:02

ммм однако мануал не помешал бы...
 
Цитата:

scale=random(50)+50; - объясни эту запись, хотя интуитивно понимаю
есть задача - сделать звезды различающимися по размеру (типа эффект дальше, ближе). Нужно задать им различный масштаб. Я решил что от 50 до 100 % от оригинала. Теперь тебе задачка - напиши форулу для создания такого числа!

random(N) генерит случайное число в диапазоне [0;N) от нуля (включительно) до числа N (N не входит в интервал)

если бы я написал так:
scale=random(50);
то получил бы серию чисел от 0 до 50ти, но мне нужно от 50 до 100. значит нужно что сделать???? Прибавить полтинник scale=random(50)+50;

чесс слово это ж алфавит!

Дальше идем.
Цитата:

_x:random(450) nj;тождественно _x=random(450)
применительно ко второму варианту записи duplicateMovieClip тождество верно! хочу только внести ясность. В привычном виде выглядело бы так:
_root.clip.duplicateMovieClip("z"+t,t);
eval("_root.clip.z"+t)._x=random(450);
и т.д. для каждого свойства...
а у меня все компактно и главное связано с объектом. т.е. не ошибешься с именем ;) .

efim 09.01.2003 19:12

макс это я так обьясняю

объясни эту запись, хотя интуитивно понимаю ничяйно скапировал не заметил все ок но все равно спасибо :) :)


сколько ошибок жуть :rolleyes:

Max N Chubin_ 09.01.2003 19:20

ёмаё...
 
чего еще непонятно то?
уже все разложил с точностью до пол-бита!
:confused:

efim 09.01.2003 19:29

ВСЕ У МЕНЯ ПУТЕМ У МЕНЯ ВОПРОСОВ ВООБЩЕ НЕ БЫЛО Я НЕ ПРАВЕЛЬНО ВЫРАЗИЛ СВОИ МЫСЛИ А ТЫ МЕНЯ НЕ ПОНЯЛ ВОТ И ВСЕ :confused: :(

Max N Chubin_ 09.01.2003 19:35

ну и славно!
 
Ну и славно!
а то я уже достал пулемет и топор...


http://smilies.sofrayt.com/1/0/maniac.gifhttp://smilies.sofrayt.com/1/e/bigun.gif

Fapser 10.01.2003 13:16

снимаю шляпу перед Вами господа
 
Мужики СПАСИБО - век живи, век учись...:)

знание Flash+воображение = 200% успеха, и удовлетворения

еще раз спасибки за ценный урок, а главное все понятно, как у Дениса...:)))))

Fapser 10.01.2003 17:17

еще вопрос :)
 
Макс последний вопрос в нижесдедующем:

_root.sky.attachMovie("zz",nam,t,{_x:x,_y:y,_rotation:random

(90),_xscale:scale,_yscale:scale});

_root.sky[nam].gotoAndPlay(random(30));

с тем как работает attachMovie и почему нет самой звезды в фильме я разобрался..:)

НО....но у меня кроме звезд на крутящемся звездном небе есть еще другие объекты на основной сцене (мувики), так вот сейчас звезды пролетают перед ними (поверх), это очень неестественно, так как все копии распологаются поверх оригинала, для того чтобы копии звезд были позади других мувов их надо заключать в мувик - > все копии будут поверх всех в мувике-крнтейнере, но ниже тех, кто на уровне мувика..вот:) так как мне это сделать?

я пробовал _root.createEmptyMovieClip("мув.контейнер",10);

не получилось...вот прошу твоего совета..
Заранее благодарен

Max N Chubin_ 10.01.2003 17:44

кинь свой исходник я поправлю.
можно на мыло


Часовой пояс GMT +4, время: 12:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.