Avatar billede namemaster Nybegynder
10. juni 2001 - 00:39 Der er 7 kommentarer

Speciel knap i Shockwave

Hvordan laver man en speciel knap i shockwave (Director8.5)som åbner en url med specielle egenskaber som dette javascript nedenunder, kan man indflette scriptet i knappen?

Spørgsmålet lyder:
Jeg skal bruge det i sammenhæng med en intro i shockwave hvor der ska åbnes en ny side ved hjælp af javascript (Som indeholder oplysninger om størrelsen af det nye vindue osv)

Javascriptet ser såen ud:
<SCRIPT LANGUAGE=\"JavaScript\">
<!--
function Intro(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = \'height=\'+h+\',width=\'+w+\',top=\'+wint+\',left=\'+winl+\',scrollbars=\'+scroll+\',status\'
win = window.open(mypage, myname, winprops)

}
// End -->
</script>

Scriptet kaldes så af denne url:
<a href=\"Main.htm\" onclick=\"Intro(this.href,\'name\',\'760\',\'550\',\'yes\');return false;\">GÅ til main</a>

Hvordan kan man indflette dette script i en knap i shockwave? I må gerne komme med evt andre scripts jeg kunne bruge til det bare jeg ka få det til at åbne et vindue emd nogle specielle egenskaber!
Avatar billede lingoman Nybegynder
10. juni 2001 - 03:02 #1
Hej namemaster!

Jeg har netop svaret på samme spørgsmål. Er du også thepcycho?

Jeg skal prøve at uddybe mit svar.

Din HTML side skal indeholde JavaScriptet, en \"EVENT interceptor\" og Shockwave filen.

Lad os starte med knappen i Shockwave filen.

on mouseUp
--send besked til browser
  externalEvent(\"Intro(this.href,\'name\',\'760\',\'550\',\'yes\')\")
end

Denne besked fanges af funktionen i HTML siden

<SCRIPT FOR=\"DinShockwaveFilNavn\"
EVENT=\"externalEvent(parametre)\"
LANGUAGE=\"JAVASCRIPT\">
function Intro(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = \'height=\'+h+\',width=\'+w+\',top=\'+wint+\',left=\'+winl+\',scrollbars=\'+scroll+\',status\'
win = window.open(mypage, myname, winprops)

}
// End -->
</script>

Selve Scriptet må gerne også være i Java eller VBscript, bare browseren supporterer det.

Håber at det var dét du ville!

mvh Geo
Avatar billede kanding Nybegynder
10. juni 2001 - 10:55 #2
externalEvent og EvalScript supporteres ikke af IE på mac. Der er også forskel på Netscape og IE. Netscape vil helst bruge Javascript og IE vil helst bruge VBscript, så det er en god ide at have begge dele implementeret.
en note: Hvis Shockwave kalder browseren og browseren skal sende tilbage til Shockwave, skal der indsætte en timeout på ca. 500 ms før javascriptet kan kalde tilbage.

Avatar billede lingoman Nybegynder
01. juli 2001 - 22:21 #3
Hej Rasmus,

Ja, nu er flyttningen overstået og jeg tager på en uges ferie i morgen.

Men inden jeg tager afsted skriver jeg lige det længe lovede svar på hvordan man kan flette javascript ind i Lingo.

Du ville gerne vide hvordan man fra lingo kan åbne et nyt browser vindue med nogle specielle egenskaber såsom vindue størrelse.

Her har jeg valgt at bruge goToNetPage kommandoen til at åbne et nyt browser vindue med width=200,height=50 som indeholder Test.htm.

knappen i .dcr aktiverer

goToNetPage(\"java script:openNetscapeWindow(\'Test.htm\',\'netWin\',\'width=200,height=50\')\")

javaScript funktionen som bliver kaldt er openNetscapeWindow() som skal være defineret i HTML siden hvor Shockwave filen er placeret
i.
openNetscape.dcr indeholder en knap med scriptet:

on mouseUp
  goToNetPage(\"java script:openNetscapeWindow(\'Test.htm\',\'netWin\',\'width=200,height=50\')\")
end

Her er mit eksempel på HTML og JavaScript funktionen:

<html>
<head>
<title>openNetscape.dcr</title>
<SCRIPT LANGUAGE=\"JavaScript\">



var javascript_version = 1.0;



</SCRIPT>
<SCRIPT LANGUAGE=\"JavaScript1.1\">



  javascript_version = 1.1;



</SCRIPT>


<SCRIPT LANGUAGE=\"JavaScript\">




var newwin;

function openNetscapeWindow(winurl,winname,winfeatures)
{
        //This launches a new window and then
        //focuses it if window.focus() is supported.

        newwin = window.open(winurl,winname,winfeatures);

        if(javascript_version > 1.0)
        {
                //delay a bit here because IE4 encounters errors
                //when trying to focus a recently opened window
                setTimeout(\'newwin.focus();\',250);
        }
}



</SCRIPT>
</head>

<body>
<center>
<h1>openNetscape.dcr</h1>
<br> <object classid=\"clsid:166B1BCA-3F9C-11CF-8075-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0\" width=\"320\" height=\"120\">
        <param name=\"src\" value=\"openNetscape.dcr\">
<embed src=\"openNetscape.dcr\" pluginspage=\"http://www.macromedia.com/shockwave/download/\" width=\"320\"
height=\"120\"></embed>
</object>
</center>
</body>
</html>

Denne kode antager at Test.htm er  gyldig.
Koden er testet på Windows for både Netscape 4.7 og I Explorer 5.0

Håber at det svarer på dit spørgsmål.

mvh Geo
Avatar billede lingoman Nybegynder
01. juli 2001 - 22:34 #4
PS. sender .dir og .htm filerne til dig så du kan teste og arbejde videre på det!
Avatar billede kanding Nybegynder
01. juli 2001 - 23:58 #5
Hej lingoman !

Er du sikker på at det virker i tidligere versioner end IE 5.0? goToNetPage kald til javascript fungerer så vidt jeg husker kun til Netscape, så test lige i andre browsere også.

Prøv at leg med denne her:

on mouseUp
param = \"Test.htm\',\'netWin\',\'width=200,height=50\"
      externalEvent(\"openNetscapeWindow(\'\"&param&\"\')\")
end
Avatar billede lingoman Nybegynder
02. juli 2001 - 00:18 #6
Hej Kanding,

Nej, jeg er ikke sikker på at det virker på tidligere versioner end IE 5.0. Det er testet som beskrevet i Explorer 5.0 og Netscape 4.7, begge på windows og begge fungerer fint. Rasmus ville sikkert blive glad for en tilsvarende som er funktionel på Mac platformen, og som også virker på tidligere browser versioner, så lad os få dit bud på det :)
Avatar billede lingoman Nybegynder
20. juli 2001 - 11:43 #7
>namemaster,
Er du på ferie :)
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
Kurser inden for grundlæggende programmering

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