Ja ma tablicę z 17 obrazami. Chcę wybrać każdy obraz z tablicy i umieścić go na scenie, ale powinno być konkretny sposób, aby to zrobić. Po wybraniu pierwszego obrazu potrzebuję tego, więc powinien to wyglądać:
var myarray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]; // these are the indexes for the 17 images
Wygląda na to kolejność elementu: [0,,,,10,2,1,1,3,2,2,1,3,124,13,16,8];
Muszę ich używać w Tween, jest to funkcja, w której robię to, ale nie mam Odry, o którym wspomniałem.
var pick_images = function(lights_arr,iterator,f)
{
if(iterator < lights_arr.length)
{
iterator = iterator +1;
}
createjs.Tween.get(lieghts_arr[iterator]).to({alpha:0},200).wait(0).to({alpha:1},200).wait(100).call([f,lights_arr,f]);
pick_images(arr, i,pick_images);
Wiem, że jeśli weźmieję światła_arr.length i podzielę go o 2, zaokrąglić go, mam zawsze drugi obraz jak 9,10,11 lub 12. Potrzebuję tego, czego potrzebuję po każdej pętli, aby wymuszyć dwie elementy (obrazy), które użyłem .
Czy wiesz, jak mogę to zrobić, aby pracować w mojej funkcji?
4 odpowiedzi
Co powiesz na to?
var myarray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
var select = [];
var step = 9;
var len = myarray.length;
for(var i = 0; i < len * step; i += step)
select.push(myarray[i % len])
console.log(select) // [ 0, 9, 1, 10, 2, 11, 3, 12, 4, 13, 5, 14, 6, 15, 7, 16, 8 ]
Właśnie rozszerzono / zoptymalizowany kod Georga Trochę, aby uczynić go bardziej dynamicznym, ponieważ myślę, że jego jest całkiem fajne rozwiązanie:
var len = 17,
myarray = Array.apply(null, {length: len}).map(Number.call, Number),
select = [],
step = Math.round(myarray.length / 2);
for(var i = 0; i < len * step; i += step) {
select.push(myarray[i % len]);
}
console.log(select);
Oto kod, aby wygenerować wypełnioną tablicę z liczbami całkowitymi.
var switch = false;
var selectedIndex = 0;
if(i < arr.length)
{
selectedIndex = (switch) ? i : i + 9;
switch = !switch;
}
Coś takiego powinno to zrobić, prawdopodobnie mógłby być jednak wykonany NEATER. Uwaga, niesprawdzona i na szczycie mojego popo.
Edytuj: OH i dla obrazów, które chcesz usunięć, możesz użyć Splice:
var arr = [0,1,2];
arr.splice(1,1); // position and how many to remove
output: arr = [0,2];
var myarray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
var select = [];
var position = 0;
while (position < myarray.length) {
select.push(myarray[position]);
if (select.length % 2) position += 9;
else position -= 8;
}
alert(select);