Avatar billede Slettet bruger
30. marts 2004 - 14:18 Der er 3 kommentarer og
1 løsning

Pushe en list og slette et index

Hej

Jeg kender desværre ikke til lingo, men har brug for:

- et eksempel på et array (en list) der pushes 
I flash som: myArray.push(obj);

- et eksempel på at slette index 0 i arrayet
I flash som: myArray.splice(0,1);

Mvh, Michael
Avatar billede kanding Nybegynder
30. marts 2004 - 14:47 #1
myList = [1,2,3,4,5,6]

push:
myList.add(7)

Returnerer ikke længden så
Length:
myList.count

splice:
myList.deleteAt(4)


Du kan jo evt samle det i et par funktioner så du kan kalde ligesom flash, det har gjort den med nogle director ting i Flash :-)
Avatar billede Slettet bruger
30. marts 2004 - 15:26 #2
Perfekt :)

Jeg skal faktisk bruge et par funktioner. En funktion der pusher mit array (jeg blander flash og lingo lidt sammen i mine eksempler hvis det er ok :)) - og en funktion der holder øje med størrelsen af mit array. Hvis længden er større end 0, skal en tredie funktion eksekveres osv osv. Altså en slags kø-rutine...


function pushList(arg){
myList.add(arg)
}


function readList(){
doStuff=true
dostuff(myList(0));
myList.deleteAt(0)
}

this.onEnterFrame = function(){
if(myList.count>0 && !doStuff){
readList()
}
}

function doStuff(arg){
// do the stuff
// stuff done
doStuff=false
}

- og smid lige et svar så du kan få point :)
Avatar billede kanding Nybegynder
31. marts 2004 - 10:17 #3
F................., jeg havde skrevet en grundig vejledning og da jeg trykkede [SEND] skete der ingenting og alt jeg havde skrevt var væk. Men her scriptet:


-------------- SCRIPT ----------------
property array, pCbObj, pCbMethod

on new me, cbObj, cbMethod
  array = []
  pCbObj = cbObj
  pCbMethod = cbMethod
  return me
end

on push me, arg
  array.add(arg)
end

on pop me
  _last = array.count
  if _last > 0 then
    _item = array[_last]
    array.deleteAt(_last)
    return _item
  end if
 
  put "Array er tomt"
  return false
end

on shift me
  _last = array.count
  if _last > 0 then
    _item = array[1]
    array.deleteAt(1)
    return _item
  end if
 
  put "Array er tomt"
  return false
end


on check me, cbObj, cbMethod
  if array.count <= 0 then
    -- Hvis der er tilsendt parametre, betyder det enten at vi ikke
    -- har initialiseret variabler i starten eller at vi ønsker
    -- at over rule dem
    if NOT voidP(cbObj) then
      call(cbMethod, cbObj)
      return true
    end if
   
    -- eller brug de initialiserede variabler, hvis der er nogen
    if NOT voidP(pCbObj) then
      call(cbMethod, cbObj)
    end if
   
   
    return "callBack object er ikke specificeret!!!"
  end if
 
end

-----------------------------------------
Jeg har lavet en pop og en shift funktion også.

Initialisering:
obj = new(script "flashList")

Push:
obj.push(2)

Pop:
obj.pop()

Shift:
obj.shift()

Check og kald en funktion. Hvis det er den samme funktion hver gang, kan du sætte dem i initialiseringen.
obj.check(script "main", #test)


En forskel fra flash er at flash har array som et indbygget object
Director har sine lister som er globale eller knýtte til objecter, så du et object foran dit array. Altså

Flash: myArray = [1,2,3]
Director(flash måde): myArray.array = [1,2,3]
Avatar billede Slettet bruger
31. marts 2004 - 10:34 #4
Det er lige efter drejebogen :)
1000 tak for hjælpen
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