Temat: laickie pytanie o initObject w attachMovie...

witam,
mam kilka pytan do biegłych użytkowników Action Scripta, jak by ktoś mi wyjaśnił moje wątpliwości, byłbym niezmiernie wdzięczny i szybko posunął się naprzód w praktycznym ćwiczeniu kodu:)
zatem:

dołączam klipy filmowe za pomocą attachMovie, no i chodzi mi o opcjonalny parametr initObject, chcę tutaj zapisać np położenie x,y dołączanego klipu, i wtedy będzie to wyglądać np tak:
{_x:100, _y:100}
no i moje wątpliwości są następujące:

jaka jest dopuszczalna forma zapisu tego parametru? czy może np znaleźć się tam wcześniej zdefiniowana zmienna? jeśli zmienna, to czym ona powinna być, aby initObject działało? albo jakikolwiek bardziej złożony zapis?
np:
{_x:myMovie_mc._width+50, _y..itd.},

do czego zmierzam?

chcę załączyć taki klip 64 razy, z tym że każdy w określonym punkcie sceny (dokładnie wybrane x,y). parametry x,y układają się w prawidłowość: za każdym razem o 50 większy (docelowo na całej scenie 400/400 mają się załaczyć 64 filmiki o wymiarach 50x50 i utworzyć jeden kwadrat 400/400). wkładam więc attachMovie w pętlę for ze zmienną i decydującą o ilości tych dołączeń, no i teraz właśnie chcę ich położenie określić..

jeśli to strasznie frajerskie pytanie to wybaczcie, ale dopiero zgłębiam AS :)
Piotr Mederak

Piotr Mederak Development Team
Leader

Temat: laickie pytanie o initObject w attachMovie...

a nie da sie prosciej i przejrzysciej?

as2:
var tmp_mc:MovieClip = this.attachMovie('costam','jakocostam', JAKIS_DEPTH);
tmp_mc._visible = false;
tmp_mc.jakas_zmienna = COS_TAM;
tmp_mc._visible = true;

as3:
var tmp_mc:MovieClip = new CosTam();
tmp_mc.jakas_zmienna = COS_TAM;
this.addChild(tmp_mc);

??
Artur Bilski

Artur Bilski Ruby on Rails &
Javascript Developer

Temat: laickie pytanie o initObject w attachMovie...

Łukasz Mizerski:
jaka jest dopuszczalna forma zapisu tego parametru? czy może np znaleźć się tam wcześniej zdefiniowana zmienna? jeśli zmienna, to czym ona powinna być, aby initObject działało? albo jakikolwiek bardziej złożony zapis?
np:
{_x:myMovie_mc._width+50, _y..itd.},

próbowałeś? działa? jeśli tak to znaczy że można
(oczywiście że działa i można ;))

@Piotr:
Ja lubię tak, wtedy nie muszę powtarzać kontekstu:

attachMovie('costam','jakocostam', JAKIS_DEPTH, {
_visible: false,
jakas_zmienna: COS_TAM
});

Dodatkowe dwie różnice co do ostatniego:
- jest szybsze
- inicjalizacja następuje przed konstruktoremArtur Bilski edytował(a) ten post dnia 10.01.08 o godzinie 10:57

konto usunięte

Temat: laickie pytanie o initObject w attachMovie...

Artur Bilski:
- inicjalizacja następuje przed konstruktorem[edited]Artur Bilski
co jest czasami bardzo pomocne.
Piotr Mederak

Piotr Mederak Development Team
Leader

Temat: laickie pytanie o initObject w attachMovie...

nie no, pewnie. ale uzywam jej tylko wtedy gdy naprawde musze lub gdy ustawiam max dwie zmienne w ten sposob: x i y. wrzucanie tam wiekszej ilosci zmiennych czyni kod moim skromnym zdaniem po prostu nieczytelnym.
Marcin W.

Marcin W.
TI/IT/VM/HT/PC/XP/AD
/SE/XL/XE/AS/TB/CP/J
S/JV

Temat: laickie pytanie o initObject w attachMovie...

Piotr Mederak:
wrzucanie tam wiekszej ilosci zmiennych czyni kod moim skromnym zdaniem po prostu nieczytelnym.
zawsze możesz obiekt spreparować sobie wcześniej
Piotr Mederak

Piotr Mederak Development Team
Leader

Temat: laickie pytanie o initObject w attachMovie...

no moge, moge, tylko po co? szkoda czasu na takie rozdmuchiwanie kodu ;]. kwestia przyzwyczajenia - ja o ile moge unikam w as2 choc wcale nie twierdze, ze to najlepsze rozwiazanie. czy wolniejsze? mysle, ze niewiele, niezauwazalnie szybsze. poza bardziej skomplikowanymi operacjami o ktorych Rafal Szemraj wspomnial a ktore nie sa przedmiotem tej dyskusji...
Marcin W.

Marcin W.
TI/IT/VM/HT/PC/XP/AD
/SE/XL/XE/AS/TB/CP/J
S/JV

Temat: laickie pytanie o initObject w attachMovie...

Za pół roku będziesz za takie "rozdmuchiwanie kodu" sam siebie po rękach całował, że je napisałeś. Nie mówię już tylko o samych _x, _y, ale o innych parametrach. No i choćby o wykorzystaniu dobrodziejstwa rekurencji dzięki zastosowaniu przechowywania ostatnich wartości w stworzonym przez Ciebie kodzie.
Piotr Mederak

Piotr Mederak Development Team
Leader

Temat: laickie pytanie o initObject w attachMovie...

do petli, ktora po prostu ma wywolac iles tam movieclipow? bez przesady ;] toc to z armata na muche. Ty bedziesz siebie moze i calowal, ale ktos, kto przejmie po Tobie tak rozdmuchany kod pol dnia straci by dojsc gdzie Twoj cudownie obiektowy kod ma linijke w ktorej tworzy new_mc._x = 100 ;)

pamietaj prosze, ze caly czas rozmawiamy o prostym przykladzie a nie o tworzeniu rozbudowanych aplikacji ;]. do bardziej zawilych przykladow ok - jak najbardziej, do tego o ktorym mowa? IMHO przerost formy nad trescia.
Marcin W.

Marcin W.
TI/IT/VM/HT/PC/XP/AD
/SE/XL/XE/AS/TB/CP/J
S/JV

Temat: laickie pytanie o initObject w attachMovie...

to akurat nie ma nic związku z obiektówką :]

nawet przy dwóch liniach kodu ważniejsza jest dla mnie czytelność, niż umiejętność wpisania tego w jednej linii. Taką "optymalizację" już przechodziłem. Niestety, nie odbija się to pozytywnie na prędkości kodu (poza niektórymi przypadkami).

Co jest wg Ciebie czytelniejsze, a co szybsze wg Ciebie ?
To:
var objset:Object = new Object ();
objset._x = 0;
objset._y = 0;
objset.refToPrev = null;
//
for (var i:Number = 0; i < 8; i++)
{
for (var ii:Number = 0; ii < 8; ii++)
{
objset.sth = "sth";
objset.refToPrev = targetMC.attachMovie ('costam', 'jakocostam' + i + ii, i * 8 + ii, objset);
objset._x += 50;
}
objset._y += 50;
}

czy to:

(i tu jedna linijka kodu szeroka na 300 kolumn /bo da się to zapisać tak jak Ty chcesz, w jednej linijce kodu łącznie z pętlą/, którą to nawet GL mi bezwzględnie raz za razem wycina)

?MaW Marcin Wróbel edytował(a) ten post dnia 11.01.08 o godzinie 10:16
Piotr Mederak

Piotr Mederak Development Team
Leader

Temat: laickie pytanie o initObject w attachMovie...

przeczytaj prosze ze zrozumieniem to co pisalem wczesniej ;)

"tu jedna linijka kodu szeroka na 300 kolumn /bo da się to zapisać tak jak Ty chcesz"

jak dla mnie koniec tematu, ktory niebezpiecznie skrecil w polemike, ktora ma na celu udowodnienie wlasnej racji a nie pomoc w rozwiazaniu problemu autorowi watku.

pozdrawiam

Następna dyskusja:

Pytanie do zaawansowanych.




Wyślij zaproszenie do