Flash Zone Forum > Êàê óñòðîèòü "êîëöåâîå" âîñïðîèçâåäåíèå êëèïîâ?
Ïîìîùü · Ïîèñê · Ïîëüçîâàòåëè · Êàëåíäàðü
Ïîëíàÿ âåðñèÿ ýòîé ñòðàíèöû: Êàê óñòðîèòü "êîëöåâîå" âîñïðîèçâåäåíèå êëèïîâ?
Flash Zone Forum > Macromedia Flash > Îáùèå âîïðîñû
s8000_1
Âñåì ïðèâåò.
Ó ìåíÿ åñòü íåñêîëüêî êëèïîâ, ñîõðàíåííûõ â áèáëèîòåêå (äîïóñòèì íàçâàíèÿ 1_mc, 2_mc, 3_mc). ß õî÷ó óñòðîèòü âîñïðîñèçâåäåíèå ýòèõ êëèïîâ ñëåäóþùèì îáðàçîì.
1 -> 2 -> 3 -> 1
Íî íå âðó÷íóþ ðèñóÿ èõ íà òàéìëèíèè à ÷åðåç Actionscript, ò.ê. âðåìåííûå ðàçìåðû (äëèòåëüíîñòü) ýòèõ êëèïîâ ïðåäïîëàãàþòñÿ äèíàìè÷åñêèìè.
ß îðãàíèçîâàë ýòî äåëî ñëåäóþùèì îáðàçîì: ïðîïèñàë âíóòðè êàæäîãî êëèïà äåéñòâèÿ òàê:
fr1 : stop();
this._visible=0;
fr2 : ìåòêà_1;
this._visible=1;
...
fr20: stop;
this._visible=0;
_parent.next_mc.gotoAndPlay("ìåòêà_2");

è ïîìåñòèë ýòè êëèïû íà ãëàâíîé ñöåíå.
Îäíàêî õîòåëîñü áû óçíàòü, êàê ýòî ìîæíî ñäåëàòü ìåíåå "êðèâî"? Ò.ê. ôðàçà
_parent.next_mc.gotoAndPlay("ìåòêà_2");
çàòðàãèâàåò ñòðóêòóðó ñèìâîëà, êîòîðóþ õîòåëîñü áû èìåòü îäíó íà âñåõ.
nikitar
Ëó÷øå âñåãî äëÿ ýòèõ íóæä èñïîëüçîâàòü ïåðåìåííóþ, êîòîðàÿ áóäåò íàõîäèòüñÿ â ðóòå.
Íàïðèìåð ó òåáÿ åñòü 3 êëèïà. Îáçîâ¸ì èç â èíñòàíñ íåéìå b1, b2, b3
 ãëàâíîé ñöåíå ó òåáÿ ñòîèò
Êîä

i=1;
_root.b1.play();


Äàëåå â êàæäîì ìóâèêëèïå ñòîèò â ïåðâîì êàäðå stop();
à â ïîñëåäíåì êàäðå

Êîä

if(_root.i<3){
_root.i++;
}
else{
_root.i=1;
}
_root["b"+i].play();


Ìàëåíüêàÿ îñîáåííîñòü ìóâèêëèïîâ â êàæäîì ìóâèêëèïå ïåðâûé êàäð ïóñòîé.
Íó è êîä ñîîòâåòñòâåííî ïîâòîðÿåòñÿ è òàì è òàì. Íå äóìàþ ÷òî ýòî òàê ñëîæíî. Íó åñëè ñëîæíî ìîæíî ýòî çàïèñàòü â ôóíêöèþ è ïîòîì óæå ïîâòîðÿòü.
Åñëè ñîâñåì íå õî÷åòñÿ êîâûðÿòüñÿ â ìóâèêëèïàõ. Íàïðèìåð, ó âàñ 200 ìóâèêëèïîâ. Òîãäà ìîæíî ïîñòóïèòü äðóãèì ïóò¸ì, ÷åðåç totalframes();
Åñëè íàäî íàïèøó êîä êàê ýòî äåëàåòñÿ.
MustLive
s8000_1

Ïîäîáíàÿ òåìà óæå íà ôîðóìå çàòðàãèâàëàñü (óæå íå ðàç ó÷àñòíèêè ñïðèøèâàëè êàñàòåëüíî ñîçäàíèÿ ìï3 ïëååðîâ íà ôëåøåðå è íå ðàç óæå âîçíèêàëè âîïðîñû ïî ïëåéëèñòó è ïîî÷åð¸äíîìó ïðîèðîâàíèè). Òàê ÷òî ïîèñê ïîìîæåò.

Ìîæåøü ñäåëàòü êàê òû ñåé÷àñ ñäåëàë. À ìîæåøü äåðæàòü ñïèñîê â îòäåëüíîé ïåðåìåííîé (ìàññèèâå) è ïî íåìó ïðîõîäèòÜ - ýòî åñëè ñïèñîê çàðàíåå çàäàííûé, à åñëè äèíàìè÷åñèé - òî ìîæåøü åãî èçâíå çàãðóæàòü (÷åðåç ïåðåäà÷ó ïåðåìåííûé èëè èç òåêñòîâîãî èëè xml ôàéëà).

Ñóòü òû óëîâèë ïðàâèëüíî - â êîíöå êëèïà íóæíî ñäåëàòü âûçîâ ïåðåõîäà íà ñëåäóþùèé ìóâèê. È ýòî îäèí èç âàðèàíòîâ (âîçìîæíû è äðóãèå - ñì. ôîðóì).

Íî òû ëèøü ñ àëãîðèòìîì ïåðåáîðùèë (óñëëîæíèë) íåìíîãî. Â ïëàíå ìåòîê - ìîæíî ñäåëàòü è ïðîñòî _parent.next_mc.gotoAndPlay (èëè _root.next_mc.gotoAndPlay), à åù¸ ëó÷øå ïðè ëþáîì àëãîðèòìå (ñ âûçîâàìè â êîíöå êëèïîâ èëè ñ äðóãèìè ïîäõîäàìè) âûçûâàòü ôóíêöèþ. Íàïðèìåð, NextClip() - â êîíöå êàæäîãî êëèïà (èëè ñäåëàòü îòäåëüíûé ìóâèê, êîòîðûé áóäåò "óïðàâëåíèåì" çàíèìàòüñÿ è âûçûâàòü åãî, ïîñûëàòü òîò æå gotoAndPlay, íî ñ ôóíêöèåé áóäåò óäîáíåé).

À óæå â ôóíêöèè îïðåäåëÿòü òåêóùèé ìóâèê è ïåðåõîäèòü ê ñëåäóþùóìó (è â êîíöå ïåðåõîäèòü ê ïåðâîìó). Ìîæíî è èç ìóâèêà ïåðåäàâàòü òåêóùåå èìÿ êëèïà (âûçîâ áóäåò: NextClip(_this.name)). È òîãäà áóäò îäèí âûçîâ íà âñå êëèïû. ×òî áóäåò òåáå óäîáíåå. ß óæ íå ãîâîðþ, ÷òî ìîã âíóòðåííþþ ìåòêó îäíó è òóæå ñäåëàòü âî âñåõ êëèïàõ.

À íàñ÷¸ò òîãî, ÷òîáû ñïðÿòàòü âñå êëèïû - òî çäåñü òîæå ìîæíî áûëî ñäåëàòü ïî äðóãîìó, îïòèìàëüíåå. ×òîáû áîëåå óäîáíî ïðÿòàòü è îòîáðàæàòü ìóâèêè (÷åðåç _visible).
s8000_1
nikitar, ó ìåíÿ âîîáùå ïî÷åìó-òî íå õî÷åò âîñïðîèçâîäèòüñÿ ïåðâûé êëèï áåç ðàñòÿãèâàíèÿ íà íóæíóþ äëèíó òàéìëèíèè.
Èñõîäíèê:
http://ifolder.ru/670408
Ïðîáëåìó ðåøèë ìåòîäîì ñîçäàíèÿ êëèïà "start" ñ äåéñòâèÿìè "_root.b1.play(); stop();"
Îäíàêî âñå æ, ïî÷åìó åñëè ïðîñòî â êîðíå ïðîïèñàòü "_root.b1.play()", òî îíî áåç ðàñòÿãèâàíèÿ òàéìëèíèè èãðàòü íå áóäåò?
nikitar
ß ïîñìîòðåë. Òàêîå ñëó÷àåòñÿ. Ëå÷èòñÿ äîñòàòî÷íî ïðîñòî.  ãëàâíîé ëèíåéêå ñäåëàé âòîðîé êàäð.  ïåðâûé êàäð ïîìåñòè ñâîé ìóâèê, íî ÷òîáû îí ïðîäîëæàëñÿ äî âòîðîãî, à âî âòîðîé âñòàâü êîä è ïîñòàâü åù¸ stop();
Òåïåðü ñ ÷åì òàêîå ñâÿçàíî. Äåëî â òîì, ÷òî è ðîëèê è êîìàíäà åìó çàãðóæàþòñÿ îäíîâðåìåííî, ñäåäîâàòåëüíî îíà íå èñïîëíÿåòñÿ, òàê êàê ñíà÷àëà ãðóçèòñÿ êîä, è íå íàéäÿ ìóâèêëèïà, íå èñïîëíÿåòñÿ, ïîòîì ïîäãðóæàåòñÿ ìóâèêëèï, íî íå íàéäÿ êîììàíä íè÷åãî íå äåëàåò. Ýòî ïðîèñõîäèò â äîëè ñåêóíäû íî äæëÿ ôëýøà ñóùåñòâåííî, ïîýòîìó ñîâåòóþ ñäåëàòü òàê â 2 êàäðà.
SanSanych
îòâåò íà ñîîáùåíèå 1

ß èñõîäèë èç òîãî, ÷òî ó òåáÿ MovieClips íàçûâàþòñÿ mc_1, mc_2 è ò.ä.
Óáåäèñü, ÷òî âêþ÷åíî Export for Action script è Export in first frame â ñâîéñòâàõ êëèïà.
 êîíöå êàæäîãî èç íèõ ñîäàåøü keyframe, â íåì ñêðèïò:

_root.playNextMC();

 êàäðå 1 ñöåíû ñêðèïò:

maxMC = 3; // êîë-âî MovieClip`îâ
for (i=0; i<maxMC; i++) {
_root.attachMovie("mc_"+(i+1), "mc_"+(i+1), this.getNextHighestDepth(), {_x:0, _y:0}); // _x, _y êîîðäèíàòû êëèïîâ ïðè âîñïðîèçâåäåíèè
eval("mc_"+(i+1))._visible = false;
eval("mc_"+(i+1)).stop();
}
i = 0;
function playNextMC() {
eval("mc_"+i)._visible = false;
eval("mc_"+i).stop();
i++;
if (i>maxMC) {
i = 1;
}
eval("mc_"+i)._visible = true;
eval("mc_"+i).gotoAndPlay(1);
}
playNextMC();

èñõîäíèê íà test.yarcity.com/us/2s8000_1.rar

s8000_1
Öèòàòà(SanSanych @ 21.12.2006 - 01:27) *

Óáåäèñü, ÷òî âêþ÷åíî Export for Action script è Export in first frame â ñâîéñòâàõ êëèïà.

ÎÎÎ! Ñïàñèáî òåáå îãðîìíåéøåå! Çà ðåàëèçàöèþ "êîëüöåâîãî âîñïðîèçâåäåíèÿ", íî è çà òî, ÷òî òû ðåøèë îäíó ìîþ ïðîáëåìó, êîòîðóþ ÿ íèêàê íå ìîã ðåøèòü smile.gif - ïî÷åìó ó ìåíÿ íå ðàáîòàåò attachMovie ). Îêàçàëîñü èç-çà ãàëî÷êè â ñâîéñòâàõ.
SanSanych
Ðàä ÷òî ïîìîã.
È åùå. Äëÿ action scripts æåëàòåëüíî ñîçäàâàòü íîâûé ñëîé.
 èñõîäíèêå ÿ ýòîãî íå ñäåëàë, à íàäî áûëî. Íó äà ëàäíî.
s8000_1
Èòàê, ïîïðîáîâàâ ðàçíûå âàðèàíòû, ñäåëàë òàê:

Äëÿ êàæäîãî îáúåêòà ïðîïèñàë parameter òèïà nextmoviename, òàì íàñòðàèâàë óæå èìÿ... ýòî ïî-ìîåìó áîëåå ãèáêî, ÷åì îäíîé ïåðåìåííîé è èìåíåì îáçûâàòü ðàçíûå îáúåêòû.
Ñïîñîá ñ îòñóòñòâóþùèì ïåðâûì êàäðîì è âûçîâîì ôóíêöèè nextmovie â ïîñëåäíåì - ÈÌÕÎ áîëåå ñîâåðøåíåí, òóò ñèíõðîíèçèðîâàííî âñå ïî âðåìåíè, ò.ê. êîä âûïîëíÿåòñÿ â íà÷àëå çàãðóçêè êàäðà, êàê ÿ ïîíÿë.
Âñåì åù¸ ðàç thanks, ïðîáëåìà ðåøåíà ).
MustLive
Öèòàòà
È åùå. Äëÿ action scripts æåëàòåëüíî ñîçäàâàòü íîâûé ñëîé.
 èñõîäíèêå ÿ ýòîãî íå ñäåëàë, à íàäî áûëî. Íó äà ëàäíî.

Òàê è åñòü, SanSanych. Òàê è íóæíî äåëàòü.

Ýòî äàâíÿÿ ïðàêòèêà, è ýòî êîððåêòíûé ñòèëü ôëåø ðàçðàáîòêè, êîãäà AS êîä âûíîñèòñÿ â îòäåëüíûé ñëîé.

Ýòî áûëî âî âðåìåíà AS1. Âî âðåìåíà AS2 è òåì áîëåå AS3 êîä ïðèíÿòî çàïèñûâàòü â êëàññû, êîòîðûå çàíîñÿòñÿ â îòäåëüíûå .as ôàéëû. Íî â ëþáîì ñëó÷àå âñ¸ äîëæíî áûòü ñäåëàíî ïðèëè÷íî, áåç íàãðîìîæäåíèé.

Öèòàòà
Äëÿ êàæäîãî îáúåêòà ïðîïèñàë parameter òèïà nextmoviename, òàì íàñòðàèâàë óæå èìÿ

s8000_1, ýòî òîæå âàðèàíò.

Íî êàê ÿ ïèñàë ðàíåå, è êàê óæå ïèñàë íà ôîðóìå, ÷òî ìîæíî çàíåñòè ñïèñîê ìóâèêîâ (è äðóãèõ ôàéëîâ äëÿ çàãðóçêè) â òåêñòîâûé èëè xml ôàéë, è ïîäãðóæàòü îòòóäà. È óæå ïî çàãðóæåííûì äàííûì ñîçäàâàòü ñïèñîê ïðîèãðûâàíèÿ è ïî íåìó ïðîèãðûâàòü ôàéëû. Òîãäà òåáå íå ïðèä¸òñÿ çàäàâàòü äëÿ êàæäîãî ìóâèêà ïàðàìåòð nextmoviename. Ýòî áûëî áû áîëåå óäîáíåé. Íî è òàê òîæå ìîæíî.
s8000_1
MustLive, à âîîáùå ãîâîðÿ, áàííåðû òàê è äåëàþòñÿ ñ ïîì. "êîëüöåâîãî" âîñïðîèçâåäåíèÿ (âåäü òàì èäåò ëîãè÷åñêîå âîñïðîèçâåäåíèå ýëåìåíòîâ äðóã çà äðóãîì)? Èëè îáû÷íàÿ ïðàêòèêà - âðó÷íóþ ðèñîâàòü êëþ÷åâûå êàäðû íà òàéìëèíèè?
nikitar
Íå âèæó íè÷åãî ïëîõîãî â ðèñîâàíèè êàäðîâ íà òàéìëàéíå. Ãëàâíîå íå íà ãëàâíîì òàéìëàéíå. Òî åñòü õîðîøàÿ ïðàêòèêà â ãëàâíîé ñöåíå èìåòü òîëüêî îäèí ìóâèêëèï, â êîòîðîì âåñü áàííåð è åñòü, ïîòîì åñëè íóæíî áóäåò äâèãàòü èëè êîïèðîâàòü, î÷åíü ïîìîæåò.
s8000_1
nikitar Íó à åñëè áàííåð, äîïóñòèì, ñîñòîèò èç 5òè îäèíàêîâûõ ïî äëèòåëüíîñòè êóñî÷êîâ, à òðåáóåòñÿ èçìåíèòü âðåìÿ âîñïðîèçâåäåíèÿ âñåõ 5òè? Òîãäà ïðèäåòñÿ ïðàâèòü òàéìëèíèþ â 5òè ìåñòàõ, ïðè ýòîì íå çàïóòàâøèñü...
nikitar
Âî-ïåðâûõ òàêàÿ ñèòóàöèÿ ðåäêà, íî áûâàåò ñîãëàñåí. È äóìàþ, ÷òî áóäåò ëåã÷å ïðàâèòü â 5-òè ìåñòàõ, ÷åì âåñü áàííåð äåëàòü ïðîãðàììíûì.
Âîîáùå áàííåð òàêàÿ øòóêà, â êîòîðîé ïðîãðàììèðîâàíèå äîëæíî áûòü ìèíèìàëüíûì. È îíî ïðèåìëåìî, åñëè òîëüêî íàïèñàòü êîä äåëî 10 ìèíóò è îí ðåàëüíî ïîìîãàåò ðàáîòå. Åñëè íåò, òî è çàìîðà÷èâàòüñÿ íå ñòîèò.
MustLive
Öèòàòà
MustLive, à âîîáùå ãîâîðÿ, áàííåðû òàê è äåëàþòñÿ ñ ïîì. "êîëüöåâîãî" âîñïðîèçâåäåíèÿ (âåäü òàì èäåò ëîãè÷åñêîå âîñïðîèçâåäåíèå ýëåìåíòîâ äðóã çà äðóãîì)? Èëè îáû÷íàÿ ïðàêòèêà - âðó÷íóþ ðèñîâàòü êëþ÷åâûå êàäðû íà òàéìëèíèè?

s8000_1

Ïðè ÷¸ì òóò êîëüöåâîå âîñïðîèçâåäåíèå? Êàê ÿ óæå ìíîãîêðàòíî ïèñàë íà ôîðóìå ïî ïîâîäó ïîäîáíîãî âîñïðîèâçåäåíèå, òî îíî èñïîëüçóåòñÿ ïðè ñîçäàíèè ïëååðîâ (ìï3 è ëþáûõ äðóãèõ) íà ôëåøå. Êîãäà òû ïîäãðóæàåøü í-íîå êîëè÷åñòâî ôàéëîâ (òåõ æå êëèïîâ), è âîñïðîèçâîäèøü èõ ïî ïîðÿäêó, çàöûêëåííî.

À áàííåðû íå èñïîëüçóþò êàêèõ ëèáî êîëüöåâûõ âîñïðîèçâåäåíèé - îíè ëèøü äåëàþòñÿ çàöûêëåííûìè. À ñàìî ñîäåðæèìîå áàííåðà - åãî èëè íà îäíîé ñöåíå â òàéìëàéíå ñäåëàé èëè â íåñêîëüêèõ ñöåíàõ - ãëàâíîå ÷òîáû ðåêëàìà áûëà ýôôåêòèâíàÿ (ò.ê. îäíà èç ìåð ýôôåêòèâíîñòè áàííåðà - ýòî CTR).

Áàííåð - ýòî ñàìîñòîÿòåëüíàÿ åäèíèöà (è â îäíîì áàííåðå 5 áàííåðîâ íå äåëàþòñÿ).  ñëó÷àå æå íåñêîëüêèõ áàííåðîâ, òî äåëàåòñÿ áàííåðî-êðóòèëêà (íà ñåðâåðíîì ÿçûêå) è êðóòèøü ñåáå áàííåðû, ëþáîå êîëè÷åñòâî. Èëè ñîçäà¸øü ãëîáàëüíóþ êðóòèëêó (êàê â ñëó÷àå áàííåðíûõ ñåòåé) èëè ëîêàëüíóþ äëÿ ñàéòà (êàê íàïðèìåð ìîÿ MustLive Banner System).

È êðóòèøü áàííåðû ëþáûå - è ãðàôèêó è ôëåø è òåêñò (ãëàâíîå ïîääåðæêó ðåàëèçîâàòü). Íî áàííåðíûå ñèñòåìû ñîçäàþòñÿ íà ñåðâåðíûõ ÿçûêàõ (perl, php è äð.). Íå íóæíî ñîçäàâàòü áàííåðîêðóòèëêó íà ôëåøå - ýòî óæå èçâðàò. È ïîäîáíûì íå ñòîèò óâëåêàòüñÿ, è íà ôëåøå ïîäîáíîå ðåàëèçîâûâàòü.

Öèòàòà
nikitar Íó à åñëè áàííåð, äîïóñòèì, ñîñòîèò èç 5òè îäèíàêîâûõ ïî äëèòåëüíîñòè êóñî÷êîâ, à òðåáóåòñÿ èçìåíèòü âðåìÿ âîñïðîèçâåäåíèÿ âñåõ 5òè? Òîãäà ïðèäåòñÿ ïðàâèòü òàéìëèíèþ â 5òè ìåñòàõ, ïðè ýòîì íå çàïóòàâøèñü...

 èäåàëå áàííåð íå äîëæåí ñîñòîÿòü èç ïÿòè (è òåì áîëåå íå äîëæåí ïîòîì åù¸ ïÿòü îòäåëüíûõ êóñêîâ ïîäãðóæàòü). Áàííåð - ýòî ñàìîñòîÿòåëüíàÿ åäèíèöà.

 ñëó÷àå êîãäà â áàííåðå óñëîâíî åñòü ïÿòü îòäåëüíûõ "ýïèçîäîâ", òî äëÿ èçìåíåíèÿ èõ äëèòåëüíîñòè (äëÿ âñåõ ñðàçó) ìîæíî èëè fps èçìåíèòü (óâåëè÷èòü èëè óìåíüøèòü), èëè æå ðóêàìè äîáàâèòü êàäðîâ ïðîìåæóòî÷íûõ äëÿ êàæäîãî èç "ýïèçîäîâ". Ïðè ýòîì âñå ÷àñòè ìîãóò áûòü êàê â îäíîé ñöåíå íà òàéìëàéíå, òàê è â ðàçíûõ ñöåíàõ.

Öèòàòà
Âî-ïåðâûõ òàêàÿ ñèòóàöèÿ ðåäêà, íî áûâàåò ñîãëàñåí. È äóìàþ, ÷òî áóäåò ëåã÷å ïðàâèòü â 5-òè ìåñòàõ, ÷åì âåñü áàííåð äåëàòü ïðîãðàììíûì.

Áàííåð ïî âîçìîæíîñòè âîîáùå íå äîëæåí ñîäåðæàòü ïðîãðàììèíãà - âåñü ïðîãðàììíûé êîä â í¸ì, ýòî âûçîâ óðëà ñàéòà äëÿ ïåðåõîäà. È âñÿ ïðîãðàììíàÿ ëîãèêà âûíîñèòñÿ íà áàííåðíûå ñèñòåìû (ëîêàëüíûå èëè ãëîáàëüíûå). Èëè æå ÷àñòü ìîæåò åù¸ áûòü â ÿâà-ñêðèïò êîäå (äëÿ äîïîëíèòåëüíûõ íóæä, â òîì ÷èñëå ïðè rich media).

Íî áàííåð - ýòî ïðåæäå âñåãî ðåêëàìíûé íîñèòåëü. È òàì â áîëüøèíñòâå ñëó÷àåâ îãðàíè÷èâàþòñÿ àíèìàöèåé. È ïðîãðàììèíã èñïîëüçóåòñÿ ìèíèìàëüíî (èëè âîîáùå íå èñïîëüçóåòñÿ, ëèøü äëÿ getURL åñòü êîä). Òàê ÷òî íèêàêèõ ïðîãðàììíûõ áàííåðîâ (è òåì áîëåå äâèæêîâ áàííåðíûõ) íà ôëåøå áûòü íå äîëæíî (èñêëþ÷åíèåì ÿâëÿþòñÿ èíòåðàêòèâíûå áàííåðû, íî ýòî îòäåëüíûé âèä, è âåñ ôàéëîâ áîëüøå è ýòî âîîáùå äðóãàÿ èñòîðèÿ). Ïîýòîìó äåëàéòå íîðìàëüíûå áàííåðû íà ôëåøå, è ñ ìèíèìàëüíûìè ðàçìåðàìè (î ÷¸ì ÿ óæå â äðóãîé òåìå ñêàçàë, ÷òî áàííåð íå ä.á. ïîä 200-300 ÊÁ, à ìàêñèìóì 20-30 ÊÁ).
Ðóññêàÿ âåðñèÿ IP.Board © 2001-2007 IPS, Inc.