Форумы города Луги

Форумы города Луги (http://xn--80afx6a.xn--p1ai/index.php)
-   Софт (http://xn--80afx6a.xn--p1ai/forumdisplay.php?f=19)
-   -   Makromedia Direktor (http://xn--80afx6a.xn--p1ai/showthread.php?t=2007)

ELEKTRIC 31.03.2006 15:53

Makromedia Direktor
 
Кто мне мог бы обяснить некоторые аспекты связаные со скриптами.
Меня интересует один скрипт, мне надо что бы мне обьяснили непонятные строки в нем.

Mike 31.03.2006 20:34

Re: Makromedia Direktor
 
Если я не путаю Macromedia Director, это только редактор, а на чем скрипты?
кинь в личку...

ELEKTRIC 31.03.2006 20:47

Re: Makromedia Direktor
 
Майк, скрипты на внутреннем языке, но очень похожем на С++, а я не втом не в другом не понимаю, хотя в общем програмировании да.

Могу вывесить здесь этот скрипт.

Mike 01.04.2006 20:51

Re: Makromedia Direktor
 
я тоже в C мало что смыслю, но ты вывеси, если он не очень здоровый, думаю кто-нибудь поможет...

TYSON 01.04.2006 20:53

Re: Makromedia Direktor
 
Майк, помоему ты путаешь насчет редактора. Это скорее всего среда разработки (типа Флеша) со встроенным языком сценариев...

Цитата:

Macromedia Director is the proven multimedia authoring tool for professionals. Director combines broad media support for media types, ease of use, high-performance, and an infinitely extendible development environment to deliver rich content and applications for CDs, DVDs, kiosks, and the Internet. Director MX 2004 offers powerful new features, including two scripting languages, DVD-Video support, cross-platform publishing, and Flash MX 2004 integration.

ELEKTRIC 01.04.2006 21:02

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

ELEKTRIC 01.04.2006 21:03

Re: Makromedia Direktor
 
Что то он большой получился....... :(

Ну вот вообщем то.... ассобенно то что выделено красным!

Mike 03.04.2006 00:10

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 (т.е. то самое инвертирование о котором я говорил).

TYSON 03.04.2006 00:58

Re: Makromedia Direktor
 
А я думал ты в ОО программировании шаришь...

Цитата:

Условие построено на основе переключения. И при его выполнении инвертирует содержимое флага.
т.е. если содержимое переменной SysBlock_Flag = 1 выполняется первое условие (if SysBlock_Flag =1 then), происходит присванивание к семейству объектов member("Comp"), ключу "SysBlock_Cover-Key" значение "0,0,333,1"
Бред, извиняюсь, голимый ...


Итак, исходная строка:
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 штук, один стринговый и четыре числовых)

А вообще в комментах там написано, что там в реале происходит:
-- открываем и закрываем корпус включая анимацию с нужного нам кадра

Цитата:

Условие построено на основе переключения.
В условии есть алгоритм инвертирования флага и не более. Основано оно (условие) на сравнении

TYSON 03.04.2006 02:10

Re: Makromedia Direktor
 
Цитата:

Сообщение от ELEKTRIC
скрипты на внутреннем языке, но очень похожем на С++,

Славка, этот язык по синтаксису вообще не похож на С++.
Скорее больше на VB.


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

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot