Avatar billede jesper-moeller Nybegynder
27. juni 2006 - 18:47 Der er 17 kommentarer og
2 løsninger

to argumenter i samme var

Jeg skal sende en masse argument til en funktion

på nær de fire første skal alle argumenter bestå af to dele "attributeName1","attributeValue1",

De 4 første fungere fint nok
qturl = action[2];
qtwidth = action[3];
qthight = action[4];
qtaxversion = action[5];

Derefter går det galt qtbackgcolor skal bestå af to argumenter 1. name 2. value
qtbackgcolor = ('bgcolor', action[6]);
Derefter foresætter det
qttitle = ('title',action[8]);
qtclass = ('class',action[9]);
osv osv ....

til sidts skal de så sendes til en funktion
men jeg kan ikke få den til at aceptere dem som værende to argumenter ??

WriteOBJECT(qturl,qtwidth,qthight,qtaxversion,qtbackgcolor,.........);
Avatar billede mclemens Nybegynder
27. juni 2006 - 20:52 #1
Hvad med
qtbackgcolor = ['bgcolor', action[6]];
Derefter foresætter det
qttitle = ['title',action[8]];
qtclass = ['class',action[9]];
... altså [] istedet for () ... du kan selvfølgelig
også lave objecter med {} hvis det var det du skulle bruge...
Avatar billede mclemens Nybegynder
27. juni 2006 - 20:53 #2
Check evt. denne her: http://www.eksperten.dk/artikler/227
Avatar billede jesper-moeller Nybegynder
28. juni 2006 - 01:18 #3
Hmmm det med [ ] kender jeg ikke ... må da prøves

Det vil sige at hvis jeg gør
qttitle = ['title',action[8]];
qtclass = ['class',action[9]];

kan jeg gøre
WriteOBJECT(qttitle,qtclass);
og det vil svare til
WriteOBJECT('title',action[8],'class',action[9]);
???

Ja undskyld jeg spøger dumt ... på trods af jeg flere gange har læst oles (og andres) forklaringe om Arrays og Objecter har jeg detsvære enu ikke helt fattet det......
Avatar billede mclemens Nybegynder
28. juni 2006 - 01:30 #4
[ kan jeg gøre
WriteOBJECT(qttitle,qtclass);
og det vil svare til
WriteOBJECT('title',action[8],'class',action[9]);
??? ]
- Nej, så skal du lægge det i enkelte varibler som her:
qttitle = 'title'
qttitle2=action[8];
qtclass = 'class'
qtclass2=action[9];

WriteOBJECT(qttitle,qttitle2,qtclass,qtclass2);

og det vil svare til WriteOBJECT('title',action[8],'class',action[9]);

eller:

qttitle = ['title',action[8]];
qtclass = ['class',action[9]];

WriteOBJECT(qttitle[0],qttitle[1],qtclass[0],qtclass[1]);

og det vil svare til WriteOBJECT('title',action[8],'class',action[9]);
Avatar billede mclemens Nybegynder
28. juni 2006 - 01:32 #5
[ Ja undskyld jeg spøger dumt ... på trods af jeg flere gange har læst oles (og andres) forklaringe om Arrays og Objecter har jeg detsvære enu ikke helt fattet det...... ] - Ikke spor dumt, jeg skulle også selv fange den, før jeg fik fat i det med objekter ... men, arrays vs. objecter afhænger lidt af, hvad man skal bruge funktionen til og hvordan ...

- Første gang jeg brugte objecter var til denne her:
http://www.eksperten.dk/spm/715114#rid6310123
Avatar billede jesper-moeller Nybegynder
28. juni 2006 - 01:58 #6
Mit problem er at jeg har 24 action[ ]
action[1] virker som den skal... (skal blot bestem vilken funktion der skal bruges tilsist)

action[2] til action[4] skal blot benytte værdierne
action[5] skal normalt være ' ' (Medmindre specielt angivet andet)
de ting virker som de skal

action[5]

herefter skal action[6] til action[24] læses og tolkes
hvis deindeholder noget skal  de deles i to og sendes til funktionen
WriteOBJECT(action[2],action[3],action[4],action[5],action[6],.........);
hvis de ikke indeholder noget skal de være helt tomme (og helst ikke være med
WriteOBJECT(action[2],.........action[5],action[6],action[8],action[12],.........);

Det giver nok mere mening at se scriptet jeg arbejder  på
http://www.jart.dk/jgom/qttest.html
Avatar billede jesper-moeller Nybegynder
28. juni 2006 - 02:10 #7
Dette virker

htmltype = action[1];
qturl = action[2];
qtwidth = action[3];
qthight = action[4];
if (action[5] != "6,0,2,0"){
    qtaxversion = " ,'http://www.apple.com/qtactivex/qtplugin.cab#version="+action[5]+"'";
    }
else{
    qtaxversion = "''";
    }

//    -----------        Write Object:            -----------

if (action[1] == true){
    QT_WriteOBJECT(qturl,qtwidth,qthight,qtaxversion);
    }
else{
    QT_WriteOBJECT_XHTML(qturl,qtwidth,qthight,qtaxversion);
    }
}


Dette virker ikke:
htmltype = action[1];
qturl = action[2];
qtwidth = action[3];
qthight = action[4];
if (action[5] != "6,0,2,0"){
    qtaxversion = " ,'http://www.apple.com/qtactivex/qtplugin.cab#version="+action[5]+"'";
    }
else{
    qtaxversion = "''";
    }

qtobject = new Array(qturl, qtwidth, qthight, qtaxversion )

//    -----------        Write Object:            -----------

if (action[1] == true){
    QT_WriteOBJECT(qtobject);
    }
else{
    QT_WriteOBJECT_XHTML(qtobject);
    }
}
Avatar billede mclemens Nybegynder
28. juni 2006 - 09:32 #8
Den sidste af dem virker ikke, fordi når du putter dem alle ind i et samlet array, for at sende dem samlet - så skal du hive værdierne ud i den anden funktion igen... og referere til værdierne med qtobject[0] , qtobject[1] ... o.s.v. istedet for de tidligere variabel nr... - Jeg ville dog også selv lave den første udgave - der er ingen grund til at wrappe mere end nødvendigt. (denne refererer jo alle værdier ind i et samlet array: qtobject = new Array(qturl, qtwidth, qthight, qtaxversion ) - så skal du til at splitte dem ud igen ... og det er dobbelt arbejde)
Avatar billede jesper-moeller Nybegynder
28. juni 2006 - 09:55 #9
Syntes bare det andet virkede mere "rigtigt" ...

men så må jeg jo bruge denne
QT_WriteOBJECT_XHTML(qturl,qtwidth,qthight,qtaxversion,qtbackgcolorn,qtbackgcolorv,qtnamen,qtnamev,qttitlen,qttitlev,qtclassn,qtclassv,qthspacen,qthspacev,qtvspacen,qtvspacev,qtbordern,qtborderv,qttabindexn,qttabindexv,qtalignn,qtalignv,qtcontrolen,qtcontrolev,qtautoplayn,qtautoplayv,qtloopn,qtloopv,qtvolumen,qtvolumev,qtpann,qtpanv,qtfovn,qtfovv,qtnoden,qtnoden);

Og tror ikke den er hel enu
Avatar billede jesper-moeller Nybegynder
28. juni 2006 - 09:57 #10
UPS ... burde vist have brugt et par mellemrum ... men ilustre meget godt bla. hvorfor jeg ville det andet :-P
Avatar billede mclemens Nybegynder
28. juni 2006 - 10:26 #11
Jeps, det er langt ... ellers skal du bruge et object ... men jeg
er på arbejde p.t. - men kigger måske lige på det iaften :o)
( hvis jeg kan finde ud af det :P )
Avatar billede mclemens Nybegynder
29. juni 2006 - 00:58 #12
Det er et lidt langt script har desværre ikke haft tid til at gennemskue / gennemgranske scriptets opbygning ... troede dog det var et kortere script men jeg tog lidt fejl... jeg kan dog heller ikke se en fordel i at samle dem i et object og så overføre dem - hvorefter du skal splitte dem ud i den anden function igen ... muligvis kan man bare nulstille de variabler man ikke skal bruge i action istedet og så overføre action arrayet (eller bare sætte array'et globalt) efter man har kørt det check du laver...

F.eks. hvis værdien skal fjernes sætter du den til action[4]="slet"; og så kører du en for løkke igennem arrayet på den anden side og checker på om værdien er sat til "slet"/""/"andet" ellers kan du måske bruge globale variabler istedet og så sætte dem udentil scriptet til "" og inde i scriptet til noget andet hvis de skal bruges og derved undlade at validere på værdier du sender videre fra den ene funktion til den anden ...

Bare et par overvejelser jeg gjorde mig - men en masse enkelte variabler overført i functionskaldet er vel ligeså god som en indpakning og en udpakning i den næste funktion ... eller rettere det synes jeg :/ (der kommer måske en kode gransker forbi senere ... jeg har ikke leget så meget med qt objecter...)

// lidt sent så undskyld hvis jeg vrøvler :o)
Avatar billede jesper-moeller Nybegynder
29. juni 2006 - 01:13 #13
Det er fordi at det script der ska behandle dataerne  skriver en linie udfra hvert par af variabler efter de fire første ...
Det gør den også hvis der kun er ,'','' i et sæt

således
QT_WriteOBJECT_XHTML('sample.mov', '320', '256', '','autoplay', 'true','bgcolor', 'black','','','align', 'middle','','');


bliver til
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase=http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0
width="320" height="256" align="middle" bgcolor="black">
<param name="src" value="sample.mov" />
<param name="autoplay" value="true" />
<param name="" value="" />
<param name="" value="" />
<embed src="sample.mov" width="320" height="256"
          align="middle" autoplay="true" bgcolor="black"
          pluginspage="http://www.apple.com/quicktime/download/">
  </embed>

derfor vil jeg gerne af med tomme variabler

Nu har jeg heldigvis været så dygtig(heldig) seelv at finde en løsning
Denne del af scripte:
for ( var ndx = 4; ndx < args.length; ndx += 2){
    attrName = args[ndx].toLowerCase();
    attrValue = args[ndx + 1];
    if ( "name" == attrName || "id" == attrName )
        gTagAttrs["name"] = attrValue;
    else
        gTagAttrs[attrName] = attrValue;
}

har jeg lavet om til
for ( var ndx = 4; ndx < args.length; ndx += 2){
if ( args[ndx] != '' ){
    attrName = args[ndx].toLowerCase();
    attrValue = args[ndx + 1];
    if ( "name" == attrName || "id" == attrName )
        gTagAttrs["name"] = attrValue;
    else
        gTagAttrs[attrName] = attrValue;
    }
}

og det ser ud til at virke
nu bliver ,'','' ikke fortolket men den hopper vidre til næste sæt :-)
Avatar billede jesper-moeller Nybegynder
29. juni 2006 - 01:15 #14
Men du har fortjænt point for din hjælp aligevel... så smid et svar
Avatar billede mclemens Nybegynder
29. juni 2006 - 01:21 #15
Føler ikke rigtig jeg har "hjulpet" men, hvis du føler det så er der
lige et svar her ... synes dog at du selv skulle kaste et også... 100
point for stort set ingen hjælp er jo lige lovlig voldsomt ;o)
Avatar billede mclemens Nybegynder
29. juni 2006 - 01:22 #16
og tak for forklaringen :)
Avatar billede jesper-moeller Nybegynder
29. juni 2006 - 01:50 #17
ok så deler vi :-)

Det jeg har lavet er en action til Eolas løsning for QuickTime ;-)
Avatar billede mclemens Nybegynder
29. juni 2006 - 08:38 #18
Mange tak for point :o)
Avatar billede jesper-moeller Nybegynder
29. juni 2006 - 08:46 #19
Så lidt da ... og tak for hjælp og tålmodighed... ;-)
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