Flash Zone Forum > Ðåâåðñ
Ïîìîùü · Ïîèñê · Ïîëüçîâàòåëè · Êàëåíäàðü
Ïîëíàÿ âåðñèÿ ýòîé ñòðàíèöû: Ðåâåðñ
Flash Zone Forum > Macromedia Flash > Îáùèå âîïðîñû
Misogi
Ëþäè.Ìîæåò ýòî ãëóïûé âîïðîñ íî âñå æå... Ó ìåíÿ åñòü movieClip êîòîðûé âñòàâëåí â êàäð îñíîâíîãî êëèïà,ìîæíî ëè êàê-íèáóäü ïðè ïîìîùè Action-a ïðîèãðàòü ýòîò movieClip â îáðàòíîì ïîðÿäêå?? unsure.gif Çàðàíåå ñïàñèáî rolleyes.gif
tiHo
Êîä
i = 6;
function gg()
{
    i--;
    clip.gotoAndStop(i);
    if (i <= 1)
    {
        i = 6;
    }
}
onEnterFrame = function ()
{
    gg();
};


òîêà áûñòðî î÷åíü êðóòèò. íî çàòî íàçàä.

à ÷òîáû ïîìåäëåíåå ìîæíî óñòàíîâèòü èíòåðâàë âûçîâà ôóíêöèè gg()

âîò òàê:

Êîä
i = 6;
function gg()
{
    i--;
    clip.gotoAndStop(i);
    if (i <= 1)
    {
        i = 6;
    }
}
setInterval(gg,500)



ïîäðîáíåå:

i: óêàçûâàåò íà êîëè÷åñòâî êàäðîâ â êëèïå clip.
ôóíêöèÿ setInterval(), óñòàíàâëèâàåò ñêîêà ðàç â ñåêóíäó áóäåò âûïîëíÿòñÿ gg().
â íàøåì ñëó÷àå êàæäûå ïîëñåêóíäû(500ìñ)

à â ïåðâîì ïðèìåðå ôóíêöèÿ âûïîëíÿåòñÿ î÷åíü ÷àñòî, íåñêîëüêî ðàç â ñåêóíäó.(êàêîé ôïñ ñòîêà ðàç è âûïîëíÿåòñÿ)

âñå. ïîëüçóéñÿ.
Rohan
Êîä
MovieClip.prototype.reverse = function() {
    this.gotoAndStop(this._totalframes);
    this.onEnterFrame = function() {
        if(this._currentframe==1)
            this.gotoAndStop(this._totalframes);
        else
            this.prevFrame();
    }
}

Þçàòü êàê
[íóæíûé êëèï].reverse();
MustLive
Èíòåðåñíûé ïðèìåð Ñàøà.

Misogi, ÿ óæå íåîäíîêðàòíî îòâå÷àë íà ôîðóìå îòíîñèòåëüíî ïðîèãðûøà íàçàä (à òàêæå â ðàññûëêå ïèñàë), ïîýòîìó ñòîèëî ïî ôîðóìó ïîèñêàòü smile.gif. Âñåì êòî çàäà¸ò "îäíè è òå æå" âîïðîñû, ñòîèò ïî ôîðóìó èñêàòü â ïåðâóþ î÷åðåäü. Ó ìåíÿ â ïðèìåðàõ ðå÷ü øëà êàê î ïðîèãðûøå âñåé ôëåøêè íàçàä, òàê è äëÿ îòäåëüíûõ ðîëèêîâ.

Íî õîðîøî, ÷òî tiHo îïåðàòèâíî íàïèñàë ïðèìåð êîäà äëÿ ýòîãî äåëà. Ó ìåíÿ â êîäå èñïîëüçîâàëñÿ íå clip.gotoAndStop(i), à clip.prevFrame(). È êîä íå òàêîé íàïðÿæíûé (íåò i, ÷òî óïðîùàåò èñïîëüçîâàíèå è äåëàåò êîä óíèâåðñàëüíûì).

Ïðè ýòîì ïðîèãðûø íàçàä ïðîèñõîäèë ñ fps ñàìîé ôëåøêè. Âàðèàíò ñ setInterval òîæå äîâîëüíî èíòåðåñåí, è ìîæåò áûòü ïðèìåíèì äëÿ ñîçäàíèÿ ðàçëè÷íûõ ýôôåêòîâ.

Ïîêà ÿ ïèñàë ìåñàäæ, è Rohan íàïèñàë ñâîé ïðèìåð.

Òîæå äîâîëüíî èíòåðåñíûé ïðèìåð, áëèçêèé ê òîìó ÷òî ÿ ìíîãî ðàç ïðèâîäèë íà ôîðóìå. Òîëüêî ó ìåíÿ áîëåå AS1-ïîäîáíûé, à ó Rohan-à, áîëåå AS2-ïîäîáíûé (ñ çàäàíèåì ïðîòîòèïà MovieClip.prototype.reverse).

Èíòåðåñíî, à â Ôëåø 6/ÌÕ ýòî çàðàáîòàåò? Ò.ê. ñàì íèêîãäà íå ïðîáîâàë ïðîòîòèïèòü. Êîä èíòåðåñíûé, ñðàçó öåëûé ìåòîä. Ñåé÷àñ ñðåäè ïðîôè ýòî ìîäíî smile.gif - ñðàçó ìåòîäû äåëàòü. Ïîäóìàþ, ìîæåò â ðàññûëêå îïèøó êàê-íèáóäü ïðèìåð Rohan-à äëÿ ðåâåðñà.
tiHo
âå÷íî ÿ âñå óñëîæíÿþ biggrin.gif
MustLive
Íåà.

Âî ôëåø 6/ÌÕ íå ðàáîòàåò ìåòîä Rohan-à. Íå ðåâåðñèò ÷åðåç ìåòîä reverse ìóâèêëèï.

Ïîýòîìó äëÿ 6/ÌÕ ìîæíî ïðèìåíÿòü ìîé ðåâåðñ:
Êîä
this.onEnterFrame = function() {
if (getBack){
  if (mc._currentframe <> 1) {
   mc.prevFrame();
  }
  else {
   getBack = false;
  }
}
}
mc.gotoAndStop(mc._totalframes);
getBack = true;

Ïðîèãðûâàåò íå çàöèêëåíî - òîëüêî îäèí ðàç ñ êîíöà. mc.gotoAndStop(mc._totalframes) - äëÿ óñòàíîâêè â êîíåö ðîëèêà (ò.å. áåç êàêèõ-ëèáî ïåðåìåííûõ i, âñ¸ ðàáîòàåò àâòîìàòè÷åñêè äëÿ ëþáûõ ìóâèêîâ).
tiHo
íó ÷òî Rohan, äîâûïåíäðèâàëñÿ biggrin.gif biggrin.gif laugh.gif laugh.gif
Rohan
ÝÝÝ! smile.gif ×å ýòî íå ðàáîòàåò? Ìëÿ, ïîêà íå íàïèñàíî "class A extends B implements C" â îòäåëüíîì *.as - ôàéëå, âñå ýòî ñ÷àñòüå - AS1. Ó ìåíÿ Flash MX2004, ïîñòàâèë â Publish settings ïóáëèêîâàòü ïîä 6-é ïëååð, âûáðàë Action Script 1 (íà âñÿêèé ñëó÷àé) - è âñå __ðàáîòàåò__. Âû òî÷íî ïðàâèëüíî ýòî þçàëè? rolleyes.gif
tiHo
îáèæàåø biggrin.gif laugh.gif
MustLive
Rohan

Íè÷åãî íå ïîëó÷èëîñü. Íè âî ôëåøå 6, íè â 8.

Êàê ÿ óæå ãîâîðèë, ïðîòîòèïèòü ðàíåå íå ïðîáîâàë, âñòðå÷àë ïîäîáíûé êîä â ðàçëè÷íûõ ðàáîòàõ, íî ñàì íå ïðîáîâàë ïîäîáíîå ïèñàòü, îòêëàäûâàë äî ëó÷øèõ âðåì¸í.

Ñåé÷àñ âîò ïîïðîáîâàë ñàì çàïðîòîòèïèòü - ñîçäàòü ñâîé ìåòîä. È ÷òî ÿ íå äåëàë, íèêàê ýòîò êîä íå çàðàáîòàë - íè â 6, íè â 8 ôëåøå. È â êàäð (à ïðîòîòèïèòü ìîæíî è â êàäðå, êàê ÿ çíàþ ïî ðàáî÷èì ïðèìåðàì), è â as-ôàéë, è êëàññàìè ïðîáîâàë è ïðèìåíÿòü ê ïðîòèòèïó ðåâåðñ-ìåòîäó ôóíêöèþ ñ äðóãîãî êëàññà, â îáùåì íèêàê ìåòîä íå çàðàáîòàë. Äîëãî ñ íèì ìîðî÷èëñÿ, íî ðàáî÷èì ìåòîä ñäåëàòü íå óäàëîñü.

Çàòî åñëè íå äåëàòü ìåòîäîì, à ïðîñòî êîä íà îáúåêò ïîìåñòèòü, òî âñ¸ õîðîøî ðàáîòàåò (è â 6/8 ôëåøå).

Êîä
onClipEvent (load) {
    this.gotoAndStop(this._totalframes);
    this.onEnterFrame = function() {
        if(this._currentframe==1)
            this.gotoAndStop(this._totalframes);
        else
            this.prevFrame();
    }
}


Íó è ó Ñàøè ÿ âèæó òîæå êîä íå ðàáîòàåò, òàê ÷òî çíà÷èò ìîè ïîäîçðåíèÿ íàñ÷¸ò ìåòîäà (÷òî åñòü ïðîáëåìû ñ ðåàëèçàöèåé â âèäå ìåòîäà) ïîäâåðæäàþòñÿ wink.gif

Ïîýòîìó ïîêà áóäåì þçàòü èëè ìîé ìåòîä (â âèäå ôóíêöèè íà êàäð), èëè ïåðåäàëàííûé âàðèàíò Ðîõàíà (â âèäå ôóíêöèè íà îáúåêò).
Rohan
Òààê... Åùå ðàç... Äåëàåì ìóâèêëèï - îäíà øòóêà, êèíàåì åãî íà ñòåéäæ, äàåì åìó èìÿ myclip â ïåðâîì è åäèíñòâåííîì ôðåéìå (÷å óñëîæíÿòü) âñòàâëÿåì êîä MovieClip.prototype... , çàòåì çäåñü æå ïèøåì myclip.reverse();  ÷åì âîîáùå ìîæåò áûòü ïðîáëåìà? Òàêîå íå ìîæåò íå ðàáîòàòü - ÿ ëè÷íî ýòî ïðîâåðèë rolleyes.gif Âñå ïðîñòî îòëè÷íî ðàáîòàåò... blink.gif
MustLive
Rohan - íå ðàáîòàåò smile.gif  òîì òî è äåëî.

Êëèï è êîä ïðîùå íåêóäà, îäèí ôðåéì, à íå ïàøåò.

MovieClip.prototype âñòàâëÿë è â êàäð ñöåíû, è â as ôàéë, ÷åãî òîëüêî íå ïðîáîâàë - è â 6/ìõ è â 8 - íå çàðàáîòàëî. Íàãëî íå ðàáîòàåò. Õîòÿ ïî èäåå âñ¸ äîëæíî ðàáîòàòü.

...

Åù¸ ðàç çàø¸ë â 8é ôëåø. Êîä âñ¸ òîò æå, â êàäðå âñ¸ ÷òî è ðàíüøå, êëèï mc.

Îïÿòü mc.reverse. Âñ¸ òàê æå. Íà âñÿêèé ñëó÷àé ïîâòîðíî íàçâàë êëèï mc. È çàðàáîòàëî! Âî áëèí - íàâåðíîå òàì èìÿ ñîäåðæàëî êèðèëëè÷åñêóþ "ñ" èëè åù¸ êàêîé-òî ãëþê. Âîò ãàäîñòü - ñòîëüêî âðåìåíè óáèë è íàìîðî÷èëñÿ ñ ïðîòîòèïîì. Ìóòíûé ãëþê ñ èìåíåì (îòêóäà òàì âçÿòüñÿ íå òîé áóêâå â èìåíè êëèïà).

Íó ñ ïðîáëåìîé ðàçîáðàëèñü. Íî ýòî âñ¸ êàñàòåëüíî 8 ôëåøà.

 6ì íå ïàøåò ýòîò êîä (òàì ñ ïðîòîòèïàìè êàê-òî ïî äðóãîìó íóæíî ïèñàòü). Ïðè ýòîì åñëè èç 8ãî ýêñïîðòèòü â 6é ôîðìàò, òî ïàøåò, äàæå åñëè AS1 ïîñòàâèòü (ðåäàêòîð ñàì ïðåîáðàçóåò êîä êàê íóæíî). À âîò â ðåäàêòîðå 6/ÌÕ êîä íå ðàáîòàåò.

Ïîýòîìó äëÿ ñîâìåñòèìîñòè ñî ñòàðûìè ðåäàêòîðàìè ðåêîìåíäóþ èñïîëüçîâàòü ìîé êîä ¹1 (ñ getBack) èëè ìîé êîä ¹2 (ðåìåéê êîäà Ðîõàíà).
Rotwang
ß íàïèñàë êîä äëÿ ïðîêðó÷èâàíèÿ âíóòðåííåé àíèìàöèè ìóâèêà plenka âïåðåä è íàçàä:
Êîä
plenka.stop();
var nnn:int = plenka.currentFrame;
vpered.addEventListener(MouseEvent.MOUSE_DOWN, vperedDownListener);
vpered.addEventListener(MouseEvent.MOUSE_UP, vperedUpListener);

function vperedUpListener(e:MouseEvent):void{
    plenka.stop();
    trace(plenka.currentFrame);
}
    
function vperedDownListener(e:MouseEvent):void{
    plenka.gotoAndStop(plenka.currentFrame);
    //addEventListener(Event.ENTER_FRAME, Play);
    //function Play(e:Event):void{
    trace(plenka.currentFrame);
    plenka.play();
}
////////////////////////////
nazad.addEventListener(MouseEvent.MOUSE_DOWN, nazadDownListener);
nazad.addEventListener(MouseEvent.MOUSE_UP, nazadUpListener);

function nazadUpListener(e:MouseEvent):void{
    plenka.stop();
    trace(plenka.currentFrame);
}
function nazadDownListener(e:MouseEvent):void{
plenka.addEventListener(Event.ENTER_FRAME, enterFrameHandler);

function enterFrameHandler(event :Event):void{
    if (plenka.currentFrame == 1){
        plenka.gotoAndStop(plenka.totalFrames)
    }else{
        plenka.prevFrame();
}
}
}

Äëÿ ïðîêðó÷èâàíèÿ âïåðåä âñå ðàáîòàåò, ïðè íàæàòèè è óäåðæàíèè êíîïêè ìóâèê ïðîèãðûâàåòñÿ âïåðåä. Ïðè îòïóñêàíèè îñòàíàâëèâàåòñÿ.
Âîò êîä, îòâå÷àþùèé çà ïðîèãðûâàíèå íàçàä
Êîä
nazad.addEventListener(MouseEvent.MOUSE_DOWN, nazadDownListener);
nazad.addEventListener(MouseEvent.MOUSE_UP, nazadUpListener);

function nazadUpListener(e:MouseEvent):void{
    plenka.stop();
    trace(plenka.currentFrame);
}
function nazadDownListener(e:MouseEvent):void{
plenka.addEventListener(Event.ENTER_FRAME, enterFrameHandler);

function enterFrameHandler(event :Event):void{
    if (plenka.currentFrame == 1){
        plenka.gotoAndStop(plenka.totalFrames)
    }else{
        plenka.prevFrame();
}
}
}

Ïðè åãî âûïîëíåíèè íà÷èíàåòñÿ ïðîêðóòêà íàçàä, íî êîãäà îòïóñêàåøü êíîïêó, ìóâèê íå îñòàíàâëèâàåòñÿ. È êðóòèòñÿ ñ âñå âîçðàñòàþùåé ñêîðîñòüþ. Ìîæåò áûòü ïðè îòïóñêàíèè íàäî êàê-òî èçáàâëÿòüñÿ îò Event.ENTER_FRAME?
Rotwang
Ãäå æå chingachgoog? wink.gif
chingachgoog
À ÷òî âû õîòèòå? Âû ïðè íàæàòèè íà êíîïêó íàçàä ïîäïèñûâàåòåñü íà nazadDownListener, êîòîðûé â ñâîþ î÷åðåäü ïîäïèñûâàåò ïëåíêó íà enterFrameHandler.
Áûëî áû ëîãè÷íî ïðåäïîëîæèòü îáðàòíóþ ïîñëåäîâàòåëüíîñòü ïðè îòïóñêàíèè êíîïêè íàçàä, íî âìåñòî ýòîãî â nazadUpListener çà÷åì-òî ïðîïèñûâàåòñÿ stop()...
Rotwang
Öèòàòà
Áûëî áû ëîãè÷íî ïðåäïîëîæèòü îáðàòíóþ ïîñëåäîâàòåëüíîñòü ïðè îòïóñêàíèè êíîïêè íàçàä

Âîò, äîøëî äî ìåíÿ íàêîíåö-òî!
Êîä
function pravoDownListener(e:MouseEvent):void{
    plenka.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
function enterFrameHandler(event :Event):void{
    if (plenka.currentFrame == 1){
        plenka.gotoAndStop(plenka.totalFrames)
}else{
        plenka.prevFrame();
        pravo.addEventListener(MouseEvent.MOUSE_UP, pravoUpListener);
function pravoUpListener(e:MouseEvent):void{
    plenka.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
    trace(plenka.currentFrame);
}
        }
}
}

ß ïðîñòî ïðÿ÷ó â pravoDownListener pravo.addEventListener(MouseEvent.MOUSE_UP, pravoUpListener); è ôóíêöèþ pravoUpListener, â êîòîðîé ïðîïèñûâàþ óäàëåíèå Event.ENTER_FRAME. È òîãäà ðàáîòàåò!
chingachgoog
Öèòàòà(Rotwang @ 19.05.2009 - 18:36) *
Òî åñòü âû õîòèòå ñêàçàòü, ÷òî íàäî êàê-òî óäàëèòü enterFrameHandler?


"Êàê-òî" íå íàäî. smile.gif
Åñëè åñòü addEventListener, òî åñòü è removeEventListener
Rotwang
chingachgoog, ïîêà ÿ ðåäàêòèðîâàë ñâîå ñîîáùåíèå, âû óæå íîâîå óñïåëè íàïèñàòü laugh.gif.
Ðóññêàÿ âåðñèÿ IP.Board © 2001-2009 IPS, Inc.