Avatar billede oersted Novice
24. april 2003 - 03:35 Der er 29 kommentarer og
1 løsning

interessant detect ....

men den virker vist ikke

den viser ihvertfald på min PC IE at jeg har 6,0,0,0 men mangler 6,0,65,0



---

// set required version here:
required_version = "6,0,0,0"
// FYI: flash 6 versions below 6,0,47,0
// have issues with controlling streaming mp3's
// specifically "stop" and "start"
//
// that's why i had to build yet another
// flash version checker... i do believe that
// this is the last one you will ever need...
//
// it is future proof.
//
// this should be in frame 1
// copy and paste this frame only
//
// "frame" copy and paste:
// select this frame on the timeline
// ctrl+alt+c
// select from 1 of your movie
// ctrl+alt+v
//
// --------------------------
// do not edit below here
// unless you know what you are doing!
// --------------------------
//
// tell the movie to stop...
stop();
// get version
actual_version = eval("$version");
see = actual_version
actual_version_length = length(actual_version);
while (i<=actual_version_length) {
i = i+1;
version_temp = substring(actual_version, i, 1);
if (version_temp eq " ") {
  version_platform = substring(actual_version, 1, i-1);
  version_majorVersion = substring(actual_version, i+1, 1);
  version_secondHalf = substring(actual_version, i+1, actual_version_length-i);
  version_minorVersion = substring(version_secondHalf, 5, 2);
}
}
// check for flash 4
if (version_majorVersion eq "4") {
    flashcheck = "no";
    allowContinue = "no";
    verdict = "mp3 streamer requires flash upgrade";
}
// check for flash 5
if (Number(version_majorVersion)>=Number(5)) {
    flashcheck = "yes";
} else {
    flashcheck = "no";
    allowContinue = "no";
    verdict = "mp3 streamer requires flash upgrade";
}
// check for all versions higher than 5
if (flashcheck == "yes") {
    // start this "split" after the space between the system and version number
    // since "unix" is longer than "win" and "mac" we need to do a couple of splits
    // examples:
    // MAC 6,0,24,0
    // WIN 6,0,21,0
    // UNIX 5,0,2,0
    split_on_space = actual_version.split(" ");
    // Aa means Array Actual (version)
    // put actual version into an array
    Aa = split_on_space[1].split(",");
    // Ar means Array Required (version)
    // put required version into an array
    Ar = required_version.split(",");
    // now we have 2 arrays:
    // actual:
    // Aa = [6,0,31,0]
    // required:
    // Ar = [6,0,47,0]
    // each having 4 elements
    //
    // now we want to compare each element... numerically.
    //
    // here we have a nice checking procedure that
    // starts at the major version, if everything
    // is cool at the major version stage, then we
    // will step down to check revision versions.
    //
    for (i=0; i<Ar.length; i++) {
        if (Number(Aa[i])>=Number(Ar[i])) {
            versioncheck = "pass";
            allowContinue = "yes";
            verdict = "mp3 streamer powered by";
        } else {
            // if at any time a set of numbers don't jive
            // break out of this "for" loop, and issue your
            // "failure" statement - or verdict
            allowContinue = "no";
            verdict = "mp3 streamer requires flash upgrade";
            version_bad_guy_id = i
            break;
        }   
    }
    //
    // this next section is done so that you can 
    // print the info out, if you so desire.
    //
    // point to the "bad guy"
    Abad_guy = new Array("version", "version minor", "revision", "revision minor")
    version_bad_guy = Abad_guy[version_bad_guy_id]
    //
    // refabricate the version info (sans platform info)
    actual_version = Aa.join(",");
    required_version = Ar.join(",");
}
// if everything is cool, just keep on moving...
// this should be as transparent as possible
// just tell the movie to start playing again
if (allowContinue == "yes") {
    // this if statement will allow you to
    // come back an check... like on the demo
    if(!version_test){
        //play();
        this.gotoAnStop(this._currentframe+1);
    }
}
// ---------------------------
// by mike gieson
// www.gieson.com
// ---------------------------



----


comments anyone ?
Avatar billede paask Nybegynder
24. april 2003 - 10:18 #1
Hej Oersted,

Jeg har lige forsøgt koden ovenfor, og får fint WIN 6,0,65,0 i IE.
Min debugging player i selve programmet giver dog 6,0,21,0.

Jeg har ligeledes rodet rundt i koden og holdt den mere ajour med MX syntaxen - har dog ingen direkte fejl fundet. Dvs begge giver korrekt version i min IE.

Prøv evt. at gå ind på moocks technote her og se hvilken version du har der (to forskellige metoder til at finde version, burde dog være ens).

http://moock.org/asdg/technotes/echoVersion/
Avatar billede barklund Nybegynder
24. april 2003 - 10:46 #2
Koden er MEGET amatør-agtig. Det er tydeligvist ikke en programmør, der har lavet den. Det kan laves betydeligt kortere og mere forståeligt, hvis det bare handler om at sammenligne getVersion() med en requiredVersion.
Avatar billede paask Nybegynder
24. april 2003 - 11:14 #3
Meget sandt - men det er da stadig mystisk hvis Oersted får forkert output...
Avatar billede oersted Novice
24. april 2003 - 13:11 #4
Hvilken detect ville I anbefale til MX ? Der er et par streaming MP3'er på siden, men det virker nu som om 6,0,0,0 kører fint nok
Avatar billede paask Nybegynder
24. april 2003 - 13:18 #5
Oh - jeg tør slet ikke gå igang med at lave en, så kommer barklund bare og tæsker mig med en søndags-berlinger og siger han kunne gøre det meget nemmere og kun på 3 linier... ;0)
Avatar billede barklund Nybegynder
24. april 2003 - 13:22 #6
Der findes ikke en 6,0,0,0 player i omløb - så vidt jeg ved. Den tidligste er vist 6,0,15,0.

Men hvad skal du læse specielt med dine mp3'er? For load af mp3 er generelt understøttet i Flash 6 playeren - og Airwolf-læsning (id3-tags) og generelt forbedret understøttelse kom i 6,0,47,0, tror jeg.

Men skal du bare detecte, om man har flash 6, så brug en almindelig javascript-detecter. Ellers kan du da bare lynhurtigt parse getVersion() og så, om major version er 6 og om minor er 47 eller større:

version = _level0.getVersion().split(" ")[1].split(",");
if (int(version[0]) >= 6 && int(version[2]) >= 47) {
  // ok
}

Det kræver ikke 100+ linier som ovenfor :)

/Barklund
Avatar billede barklund Nybegynder
24. april 2003 - 13:23 #7
Sjovt, at du siger 3 linier... Jeg så ikke dit indlæg inden jeg postede... :)
Avatar billede nikolajdu Nybegynder
24. april 2003 - 13:26 #8
Og lyntesteren på et flash 6 plugin....

gotoAndStop = (System.capabilities? "jaSgu" : "NejDu");
Avatar billede nikolajdu Nybegynder
24. april 2003 - 13:27 #9
hov uden =

gotoAndStop(System.capabilities? "jaSgu" : "NejDu");
Avatar billede oersted Novice
24. april 2003 - 13:27 #10
paask :-) 

Barklund> hva med Niklajdus ? :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>flashDetect</title>
</head>
<body bgcolor="#deded6">
<script language="vbscript"><!--
on error resume next
set f = CreateObject("ShockwaveFlash.ShockwaveFlash")
if IsObject(f) then
  flash = true
end if
flash5 = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))
flash6 = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))
--></script>
<script language="javascript" type="text/javascript">

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
ie5 =(document.getElementById)? true:false
ns6 = (document.getElementById && !document.all)?true:false;

hvorhen = false;

if(ns4||ns6){
if (navigator.plugins) {
  for (var i=0; i < navigator.plugins.length; i++) {
    if (navigator.plugins[i].name.toLowerCase().indexOf("shockwave flash") >= 0) {
      i_flash = true;
      flash = navigator.plugins[i].description.substring(navigator.plugins[i].description.toLowerCase().lastIndexOf("flash ") + 6, navigator.plugins[i].description.length);
    }
  }
  if(flash){
findVersion = parseInt(flash.substring(0,1));
alert(findVersion)
if (!findVersion==6){
hvorhen='HarNetscapeMenikkeFlash6.html'
}else if(findVersion ==5){
hvorhen='HarNetscapeOgFlash5.html'
}else{
hvorhen='harNetscapeMenHverken5Eller6.html'
            }
        }
    }
}else if(ie4||ie5){
    if (flash5&&!flash6){
  hvorhen = 'minIEOpdateringssideforFlash6.html'
}else if(!flash5){
hvorhen = 'minIEOpdateringssideForFlash5.html'
    }
}
if(hvorhen){
self.location.href = hvorhen;
    }else if(hvorhen!=false){
alert("det kan jeg sgutte finde u&acute; a&acute; du!!")
}

</script>
min flash film kommer her...
</body>
</html>
Avatar billede oersted Novice
24. april 2003 - 13:29 #11
nikolajdu, nå der var du, jeg havde knapt citeret dig ..
Avatar billede paask Nybegynder
24. april 2003 - 13:33 #12
Så vidt jeg husker er en af forbedringerne i 6,0,47,0 at det er muligt at pause, stoppe og starte streaming mp3'er - så hvis det er det man vil, er det nok meget smart at tjekke version for at slå de muligheder til / fra...
Avatar billede nikolajdu Nybegynder
24. april 2003 - 13:33 #13
Glem javascriptet lidt. Det får du ikke brug for hvis du som udgangspunkt antager at 99,9% har et flash 4 plugin.
Avatar billede barklund Nybegynder
24. april 2003 - 13:34 #14
Nikolaj's script bruger man inden flash. Man detecter om brugeren overhovedet kan se flash 6, og så sender man ham til en passe opdateringsside.

Hvis brugeren så har flash 6, så kan du bruge mit script for at se, om hans flash 6 version er ny nok til, at han kan høre dine mp3'er ordentligt. Hvis ikke, så kan du igen sende ham til opdateringssiden.

De to metoder er ikke alternativer med derimod hinandens supplementer... :)

/Barklund
Avatar billede oersted Novice
24. april 2003 - 13:48 #15
nej ok, langt de fleste har jo Flash - så versionsscriptet er jo faktisk nok..

kan man lægge noget "du har denne version" ind i din
version = _level0.getVersion().split(" ")[1].split(",");
if (int(version[0]) >= 6 && int(version[2]) >= 47) {
  // ok
}
Avatar billede barklund Nybegynder
24. april 2003 - 13:54 #16
version = _level0.getVersion().split(" ")[1].split(",");
if (int(version[0]) >= 6 && int(version[2]) >= 47) {
    output = "Din flash player er i orden";
} else {
    output = "Din flash player er "+_level0.getVersion().split(" ")[1]+", men du skal have version 6,0,47,0 for at kunne benytte dette site";
}

Så sætter den variablen output...
Avatar billede oersted Novice
24. april 2003 - 13:57 #17
den prøver vi lige
Avatar billede oersted Novice
24. april 2003 - 14:10 #18
så mngler vi bare en ældre version 6 ... er der nogen der har den ? på Macromedia er der kun 5'ere ..
http://www.macromedia.com/support/flash/ts/documents/oldplayers.htm
Avatar billede oersted Novice
24. april 2003 - 23:16 #19
hmmm

version = _level0.getVersion().split(" ")[1].split(",");
if (int(version[0])>=6 && int(version[2])>=47) {
    getURL("osman.html?", "_self");
} else {
    gotoAndStop(2);
}


burde da virke

ligger i en Flash5 som redirecter til en flash6
Avatar billede barklund Nybegynder
26. april 2003 - 13:29 #20
Du skal vist lige fjerne "_level0." for at det virker.
Avatar billede oersted Novice
26. april 2003 - 13:38 #21
ok, prøver den i aften
ku jeg lave outputtet i 5'eren ? Den har jo checket det ..
Avatar billede barklund Nybegynder
26. april 2003 - 14:02 #22
Jeg forstår ikke dit spørgsmål, men hvis du vil lave scriptet i en Flash 5 swf, så kan du godt det.
Avatar billede oersted Novice
26. april 2003 - 14:12 #23
jeg mener:
output = "Din flash player er i orden";
} else {
    output = "Din flash player er "+_level0.getVersion().split(" ")[1]+", men du skal have version 6,0,47,0 for at kunne benytte dette site";
}

virker jo kun i MX (tekstbox med navn..)

hvis jeg kunne få outputtet (Din flash player er "+_ osv ) ud i Flash 5 ville det jo være pingeling
Avatar billede barklund Nybegynder
26. april 2003 - 14:53 #24
Tekstfelter havde skam også variabel-navne i flash 5. Så hvis du skriver "output" i "var"-feltet for dit tekstfelt, så kan du eksportere det som en Flash 5 SWF...
Avatar billede oersted Novice
26. april 2003 - 15:39 #25
ja, ok - jeg prøver. tak
Avatar billede oersted Novice
01. maj 2003 - 16:52 #26
det virker perfekt .. tak
Avatar billede oersted Novice
24. maj 2003 - 19:51 #27
gi et svar - ellers lukker vi lige her
Avatar billede barklund Nybegynder
24. maj 2003 - 20:05 #28
ok... hvis det altså er mig... :)
Avatar billede oersted Novice
24. maj 2003 - 22:33 #29
jææ
Avatar billede barklund Nybegynder
24. maj 2003 - 22:56 #30
Jo tark :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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