31.03.2006, 15:53 | #1 |
Местный
Регистрация: 18.03.2004
Сообщений: 2,614
|
Makromedia Direktor
Кто мне мог бы обяснить некоторые аспекты связаные со скриптами.
Меня интересует один скрипт, мне надо что бы мне обьяснили непонятные строки в нем. |
31.03.2006, 20:34 | #2 |
Местный
|
Re: Makromedia Direktor
Если я не путаю Macromedia Director, это только редактор, а на чем скрипты?
кинь в личку...
__________________
NOTHING GON'A CHANGE MY WORLD |
31.03.2006, 20:47 | #3 |
Местный
Регистрация: 18.03.2004
Сообщений: 2,614
|
Re: Makromedia Direktor
Майк, скрипты на внутреннем языке, но очень похожем на С++, а я не втом не в другом не понимаю, хотя в общем програмировании да.
Могу вывесить здесь этот скрипт. |
01.04.2006, 20:51 | #4 |
Местный
|
Re: Makromedia Direktor
я тоже в C мало что смыслю, но ты вывеси, если он не очень здоровый, думаю кто-нибудь поможет...
__________________
NOTHING GON'A CHANGE MY WORLD |
01.04.2006, 20:53 | #5 | |
!##NULL##!
Регистрация: 05.07.2005
Сообщений: 2,865
|
Re: Makromedia Direktor
Майк, помоему ты путаешь насчет редактора. Это скорее всего среда разработки (типа Флеша) со встроенным языком сценариев...
Цитата:
|
|
01.04.2006, 21:02 | #6 |
Местный
Регистрация: 18.03.2004
Сообщений: 2,614
|
Re: Makromedia Direktor
global SysBlock_Flag, CPU_Flag, xq, VideoPlata_Flag, Monitor_Flag, EnterFrame_Flag, yq, CpuCool_Flag, CD_Cover_Flag, Pow_Button_Flag, CD_Play_Flag, SoundPlata, Kolonki_Flag, musicS
on beginSprite me member("Comp").resetWorld() member("Comp").model("CpuCool").addChild(member("C omp").model("CpuVentilator")) Kolonki_Flag = 1 SoundPlata = 1 CD_Play_Flag = 1 Pow_Button_Flag = 1 CD_Cover_Flag = 1 CpuCool_Flag = 1 SysBlock_Flag = 1 CPU_Flag = 1 VideoPlata_Flag = 1 Monitor_Flag = 1 EnterFrame_Flag = 1 yq = 0 -- просто счетчик xq = member("Comp").camera("DefaultView").fieldOfView -- Ставим на паузу анимацию объектов. -- К тем объектам которые анимированы костями добавляем -- модификатор bonesPlayer иначе анимацией будет невозможно управлять. member("Comp").model("VideoPlata").keyframePlayer. pause() member("Comp").model("CPU").keyframePlayer.pause() member("Comp").model("CpuCool").keyframePlayer.pau se() member("Comp").model("Power_Button").keyframePlaye r.pause() member("Comp").model("MonProvod").addModifier(#bon esPlayer) member("Comp").model("MonProvod").bonesPlayer.paus e() member("Comp").model("CD_Disk").keyframePlayer.pau se() member("Comp").model("SoundPlata").keyframePlayer. pause() member("Comp").model("SoundProvod").addModifier(#b onesPlayer) member("Comp").model("SoundProvod").bonesPlayer.pa use() member("Comp").model("CpuVentilator").keyframePlay er.pause() end on mouseUp mouseTarget = the mouseLoc - point(sprite(2).left, sprite(2).top) if sprite(2).camera.modelUnderLoc(mouseTarget) = member("Comp").model("SysBlock_Cover") then -- открываем и закрываем корпус включая анимацию с нужного нам кадра if SysBlock_Flag =1 then member("Comp").model("SysBlock_Cover").keyframePla yer.play("SysBlock_Cover-Key",0,0,333,1) SysBlock_Flag = 2 else put "close" member("Comp").model("SysBlock_Cover").keyframePla yer.play("SysBlock_Cover-Key",0,333,666,1) SysBlock_Flag =1 end if end if -- myKeyPress end on enterFrame me myKeyPress end on myKeyPress --поворот слева if keyPressed("z") then member("Comp").model("CamDummy").rotate(0,0,2) end if --поворот справа if keyPressed("c") then member("Comp").model("CamDummy").rotate(0,0,-2) end if -- наезд камерой if keyPressed("d") then if xq>10 then xq=xq-1 member("Comp").camera("DefaultView").fieldOfView = xq end if end if -- отъезд камерой if keyPressed("x") then if xq<50 then xq=xq+1 member("Comp").camera("DefaultView").fieldOfView = xq end if end if -- ресет камеры if keyPressed("r") then xq=45 member("Comp").camera("DefaultView").fieldOfView = xq end if if keyPressed("p") then go to 0 end if updateStage() end |
01.04.2006, 21:03 | #7 |
Местный
Регистрация: 18.03.2004
Сообщений: 2,614
|
Re: Makromedia Direktor
Что то он большой получился.......
Ну вот вообщем то.... ассобенно то что выделено красным! |
03.04.2006, 00:10 | #8 |
Местный
|
Re: Makromedia Direktor
я так опнимаю это для написания скриптовых оболочек типа Demo Shield, по поводу скрипта, выделенной части, не вникая в детали, могу попробовать немного пояснить...
...если анализируя очень поверхностно, то в том что помеченно красным выполняется условие и присваиваний информации к семейству объектов. Условие построено на основе переключения. И при его выполнении инвертирует содержимое флага. т.е. если содержимое переменной SysBlock_Flag = 1 выполняется первое условие (if SysBlock_Flag =1 then), происходит присванивание к семейству объектов member("Comp"), ключу "SysBlock_Cover-Key" значение "0,0,333,1" а затем происходит переключение SysBlock_Flag в значение 2, и выход из условия, при следующем проходе этого условия, условие не совпадет, и тогда выполнятся комманды, стоящие пеосле оператора else, и так же перейдет переключение во SysBlock_Flag = 1 (т.е. то самое инвертирование о котором я говорил).
__________________
NOTHING GON'A CHANGE MY WORLD |
03.04.2006, 00:58 | #9 | ||
!##NULL##!
Регистрация: 05.07.2005
Сообщений: 2,865
|
Re: Makromedia Direktor
А я думал ты в ОО программировании шаришь...
Цитата:
Итак, исходная строка: member("Comp").model("SysBlock_Cover").keyframePla yer.play("SysBlock_Cover-Key",0,0,333,1) здесь вызывается метод play объекта member("Comp").model("SysBlock_Cover").keyframePla yer которому передаются параметры "SysBlock_Cover-Key",0,0,333,1 (целых 5 штук, один стринговый и четыре числовых) А вообще в комментах там написано, что там в реале происходит: -- открываем и закрываем корпус включая анимацию с нужного нам кадра Цитата:
|
||
03.04.2006, 02:10 | #10 | |
!##NULL##!
Регистрация: 05.07.2005
Сообщений: 2,865
|
Re: Makromedia Direktor
Цитата:
Скорее больше на VB. |
|