Avatar billede staticmotion Nybegynder
23. april 2001 - 21:23 Der er 15 kommentarer og
1 løsning

Frame check (*.gif ) / reverse sequence!!!

Hey!
Jeg håber der er nogen der kan hjælpe mig?

50x50 gif still billed som standard.
50x50 gif anim 14 frames aktiveres når musen er over objekt, når jeg så fjerner mus, resettes anim til still billed NOT COOL!!!

- hvordan laver jeg et frame check på anim, når mus er væk, så anim går tilbage til udgangs stilling

respekt til folket som kender svaret....

hilsen Mads

her er prosedure:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<script language=\"JavaScript\">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf(\"#\")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf(\"?\"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>

<body bgcolor=\"#FFFFFF\" text=\"#000000\" onLoad=\"MM_preloadImages(\'knap.gif\')\">
<a href=\"#\" onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_swapImage(\'Image1\',\'\',\'knap.gif\',1)\"><img name=\"Image1\" border=\"0\" src=\"knap1.png\" width=\"50\" height=\"50\"></a>
</body>
</html>



Avatar billede erikjacobsen Ekspert
23. april 2001 - 21:46 #1
Er det godt nok hvis det der bevæger sig bare er en animeret gif ?
Avatar billede staticmotion Nybegynder
23. april 2001 - 21:53 #2
Ja...hmmm...det er jo det jeg vil,,,min gif skal reverse når mouse flyttes fra objekt!!!
Avatar billede erikjacobsen Ekspert
23. april 2001 - 21:58 #3
oh kay, 3 giffer skulle kunne klare det - de 2 animerede... hmm... ikke lige nu
Avatar billede staticmotion Nybegynder
23. april 2001 - 22:00 #4
oh kay, 3 giffer skulle kunne klare det - de 2 animerede... hmm... ikke lige nu ?????

lækkert....hmmm....
Avatar billede jakoba Nybegynder
23. april 2001 - 22:03 #5
Hvis din anim er en animeret gif fil er der ikke noget at gøre. En animeret gif kører rundt og rundt i sin sekvens også når den slet ikke bliver vist.
Sæt evt den samme gif på siden to steder for at se det. den ene fast, den anden svitches til og fra, de vil følges ad.

men du kan gøre det med en javascript animation, dvs 14 separate .gif filer der begunder at switche i sekvens når musen kommer over.

<script language=\'javascript\'> <!--

var offpic = \"billed_off.jpg\"; // behøver ingen preload

var anim = new Array( \"p0.gif\", \"p1.gif\", \"p2.gif\", \"p3.gif\", \"p4.gif\", \"p5.gif\",
                    \"p6.gif\", \"p7.gif\", \"p8.gif\", \"p9.gif\", \"p10.gif\", \"p11.gif\",
                    \"p12.gif\", \"p13.gif\" );
  // de 14 frames i din animation.
var preloader = new Array();
for (var i=0 amin.length>i; i++ ) { // preload anim billederne
    preloader[i] = new Image();
    preloader[i].src = anim[i];
};

var animOn = false;
var animCnt = 0;
function showAnim( nvn ) {  // viser animationen
    if ( animOn == true ) {
      document.images[nvn] = anim[animCnt++];
      if ( animCnt >= anim.length ) animCnt = 0;
      setTimeout( \"showAnim(\'\" +nvn +\"\')\", 100 ); // ret evt hastigheden
    } else {
      document.images[nvn] = offpic;
      animCnt = 0;
    }
}; //end showAnim( string )

function startAnim( nvn ) { // starter og undgår dobbelstart
  if ( animOn != true ) {
    animOn = true;
    showAnim( nvn );
  };
}; //end startAnim( string )

// --> </script>

linket laves så som:

<a href=\"linkfil.html\" onmouseover=\"startAnim(\"billednavn\");\"
  onmouseout=\"animOn=false;\"><img name=\"billednavn\" src=\"offpic.jpg\" width=50 height=50></a>

mvh JakobA
Avatar billede jakoba Nybegynder
23. april 2001 - 22:06 #6
læste kommentarer af dig og erikjakobsen.
Betyder det at animationen skal \"gå baglæns\" til første billed i animationen?
Avatar billede jakoba Nybegynder
23. april 2001 - 22:09 #7
uf. fejl.  ret til:

function showAnim( nvn ) {  // viser animationen
    if ( animOn == true ) {
      document.images[nvn].src = anim[animCnt++];
      if ( animCnt >= anim.length ) animCnt = 0;
      setTimeout( \"showAnim(\'\" +nvn +\"\')\", 100 ); // ret evt hastigheden
    } else {
      document.images[nvn].src = offpic;
      animCnt = 0;
    }
}; //end showAnim( string )

dvs  .src  efter  document.images[nvn]  begge steder
Avatar billede staticmotion Nybegynder
23. april 2001 - 22:09 #8
vil det sige at jeg :

var anim = new Array( \"p0.gif\", \"p1.gif\", \"p2.gif\", \"p3.gif\", \"p4.gif\", \"p5.gif\",
                    \"p6.gif\", \"p7.gif\", \"p8.gif\", \"p9.gif\", \"p10.gif\", \"p11.gif\",
                    \"p12.gif\", \"p13.gif\" );
 
- her skriver de seperate gif billeder,
så animationen køre baglæns når musen flyttes fra
giffen???
hvis ja....
så er point 25 dine!!! :)
Avatar billede jakoba Nybegynder
23. april 2001 - 22:27 #9
Ja der skriver du de 14 separate .gif billeder.
Nej, som jeg har lavet det kører animationen ikke baglæns.

et øjeblik ...
Avatar billede erikjacobsen Ekspert
23. april 2001 - 22:34 #10
Ah, måske kommer jeg først ....
Avatar billede jakoba Nybegynder
23. april 2001 - 22:37 #11
<script language=\'javascript\'> <!--

var offpic = \"billed_off.jpg\"; // behøver ingen preload

var anim = new Array( \"p0.gif\", \"p1.gif\", \"p2.gif\", \"p3.gif\", \"p4.gif\", \"p5.gif\",
                    \"p6.gif\", \"p7.gif\", \"p8.gif\", \"p9.gif\", \"p10.gif\", \"p11.gif\",
                    \"p12.gif\", \"p13.gif\" );
  // de 14 frames i din animation.
var preloader = new Array();
for (var i=0 amin.length>i; i++ ) { // preload anim billederne
    preloader[i] = new Image();
    preloader[i].src = anim[i];
};

var animHandle = 0;
var animOn = false;
var animCnt = -1;
function showAnim( nvn ) {  // viser animationen
    if ( animOn == true ) {
      document.images[nvn].src = anim[++animCnt];
      if ( animCnt >= anim.length ) animCnt = 0;
      animHandle = setTimeout( \"showAnim(\'\" +nvn +\"\')\", 100 ); // ret evt hastigheden
    } else {
      if ( animCnt >= 0 ) {
        document.images[nvn].src = anim[--animCnt];
        animHandle = setTimeout( \"showAnim(\'\" +nvn +\"\')\", 100 ); // ret evt hastigheden
      }
    }
}; //end showAnim( string )

function startAnim( nvn ) { // starter og undgår dobbelstart
  if ( animOn != true )
    clearTimeout( animHandle );
    animCnt = -1;
    animOn = true;
    showAnim( nvn );
  };
}; //end startAnim( string )

// --> </script>

nu skulle animationen rulle baglæns og stoppe ved billedet \"p0.gif\"

mvh JakobA
Avatar billede erikjacobsen Ekspert
23. april 2001 - 22:37 #12
Avatar billede jakoba Nybegynder
23. april 2001 - 22:37 #13
du drømmer erik :)
Avatar billede erikjacobsen Ekspert
23. april 2001 - 22:38 #14
Min fylder én linie (med et par specialstrikkede giffer):

<a href=\"#\" onmouseover=\"document.billede.src=\'67018c.gif\'\" onmouseout=\"document.billede.src=\'67018d.gif\'\"><img src=\"67018b.gif\" width=\"50\" height=\"50\" name=\"billede\" border=\"0\"></a>
Avatar billede jakoba Nybegynder
23. april 2001 - 22:41 #15
Ups, fejl igen. i funktionen startAnim skal der  {
efter første linie:
  if ( animOn != true ) {

erikjacobsen >> og du har ovenikøbet lavet billeder. OK. jeg gir mig.
Avatar billede jakoba Nybegynder
23. april 2001 - 22:51 #16
Især eftersom mine randbetingelser var gale. een gang til:

<script language=\'javascript\'> <!--

var offpic = \"billed_off.jpg\"; // behøver ingen preload

var anim = new Array( \"p0.gif\", \"p1.gif\", \"p2.gif\", \"p3.gif\", \"p4.gif\", \"p5.gif\",
                    \"p6.gif\", \"p7.gif\", \"p8.gif\", \"p9.gif\", \"p10.gif\", \"p11.gif\",
                    \"p12.gif\", \"p13.gif\" );
  // de 14 frames i din animation.
var preloader = new Array();
for (var i=0 amin.length>i; i++ ) { // preload anim billederne
    preloader[i] = new Image();
    preloader[i].src = anim[i];
};

var animHandle = 0;
var animOn = false;
var animCnt = 0;
function showAnim( nvn ) {  // viser animationen
    if ( animOn == true ) {
      document.images[nvn].src = anim[animCnt++];
      if ( animCnt >= anim.length ) animCnt = 0;
      animHandle = setTimeout( \"showAnim(\'\" +nvn +\"\')\", 100 ); // ret evt hastigheden
    } else {
      if ( animCnt >= 0 ) {
        document.images[nvn].src = anim[animCnt--];
        animHandle = setTimeout( \"showAnim(\'\" +nvn +\"\')\", 100 ); // ret evt hastigheden
      } else animCnt = 0
    }
}; //end showAnim( string )

function startAnim( nvn ) { // starter og undgår dobbelstart
  if ( animOn != true ) {
    clearTimeout( animHandle );
    animCnt = 0;
    animOn = true;
    showAnim( nvn );
  };
}; //end startAnim( string )

// --> </script>

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester