Witam!
Mam kolejny problem i pewnie marek_f pomoże mi go rozwiązać jak zam te forum.Przechodzę do rzeczy , a mianowicie: tworzę skryptem movie clipy i potem chcę się do nich odwołać i zmienić ich własności ale nie zawsze jest to możliwe szczególnie gdy tworzę więcej jednocześnie przez pętlę for.
[AS 2.0]movieclipy tworzone skryptem
Re: [AS 2.0]movieclipy tworzone skryptem
Coś tam na ten temat wiem. Pewnie chodzi o coś takiego gdzie trzeba użyć notacji tablicowej:

Kod: Zaznacz cały
for (var i = 0; i < 100; i++) {
var newName = "mc" + i;
this.createEmptyMovieClip(newName, i);
this[newName]._x = Math.round(Math.random() * 300);
this[newName]._y = Math.round(Math.random() * 300);
this[newName].lineStyle(5 + Math.round(Math.random() * 30), Math.round(Math.random() * 0xffffff), 20 + Math.round(Math.random() * 80));
this[newName].lineTo(1, 0);
}Re: [AS 2.0]movieclipy tworzone skryptem
A czemu trzeba tak:
,
a nie po prostu:
To jest właśnie ta notacja tablicowa?
Kod: Zaznacz cały
this[newName]._xa nie po prostu:
Kod: Zaznacz cały
newName._xRe: [AS 2.0]movieclipy tworzone skryptem
A dlaczego po prostu tego nie zmienisz i nie sprawdzisz czy podana przez Ciebie notacja kropkowa działa czy nie?
Będzie ona działała poza pętla, ale w pętli trzeba użyć albo notacji tablicowej albo wyrażenia eval
Re: [AS 2.0]movieclipy tworzone skryptem
OK
Jak coś bede się chciał jeszcze dowiedzieć, to sprawdze najpierw =]
Re: [AS 2.0]movieclipy tworzone skryptem
ok rozumiem jeszcze tego nie sprawdzałem ale największe problemy są poza pętlą , jeżeli utworzę np dziesięć klipów, a potem chcę żeby im np. zmienić alpha i zamiast tej zdefiniowanej w beginFill nadać nową wartość to jakoś nie wychodzi.
Re: [AS 2.0]movieclipy tworzone skryptem
Bo żeby zmienić to, co jest dynamicznie narysowane trzeba ten rysunek usunąć i dać nowy:
Kod: Zaznacz cały
for (var i = 0; i < 10; i++) {
var newName = "mc" + i;
this.createEmptyMovieClip(newName, i);
this[newName]._x = this[newName]._width * i;
this[newName].lineStyle(1, 0xffffff, 100);
this[newName].beginFill(0xff0000, 100);
this[newName].lineTo(20, 0);
this[newName].lineTo(20, 20);
this[newName].lineTo(0, 20);
this[newName].lineTo(0, 0);
this[newName].endFill();
this[newName]._x = this[newName]._width * i;
}
with (mc5) {
_y = 20;
clear();
lineStyle(1, 0x00ff00, 100);
beginFill(0x000000, 20);
lineTo(20, 0);
lineTo(20, 20);
lineTo(0, 20);
lineTo(0, 0);
endFill();
}