SWiSH Forum
Forum użytkowników programów SWiSH

SWiSH Max - [problem] Doklejanie stringa do zmiennej

vegas - Czw 31 Maj, 2012 08:19
Temat postu: [problem] Doklejanie stringa do zmiennej
Witam,
Nie wiem generalnie jak szukać odpowiedzi na takie pytanie dlatego zakładam nowy temat. Nie znalazłem działu piaskownica ;)
Mam taki mały kawałek kodu.

Kod:
onSelfEvent (load) {
    var skalowanie:Number = 0; 

    for (skalowanie = 1; skalowanie < 10; skalowanie++) {
    var sklejany:String ="_"+skalowanie;
    trace(sklejany);
        sklejany._xscale = 0;
        sklejany._yscale = 0;
        trace(_1._xscale);
    }
   
}


Dlaczego polecenie trace(_1._xscale) zwraca mi 100 zamiast 0?
Dziękuję za ewentualne odpowiedzi.
Pozdrawiam serdecznie

Januszr - Czw 31 Maj, 2012 19:31

bo obiekt _1 nie ma definiowanej skali x?
Może jakbyś "pytał" o obiekt "sklejany" to trace dało by inny wynik?

vegas - Czw 31 Maj, 2012 20:22

Dziękuję za odpowiedź.

Chciałbym tylko dodać, że mam 10 MovieClipów z nazwami _1, _2, _3 itd. i planowałem zrobić tak, że w w pętli zostaną wyzerowane (_xscale, _yscale) wszystkie moje clipy.

trace(sklejany._xscale); zwraca mi wynik "undefined".
Czy może jest łatwiejszy sposób na to? Pętla wydaje mi się nieunikniona.

pozdrawiam

shastaan - Pią 01 Cze, 2012 06:31

Załącz swi. Jak mamy sam kod to on nam zwraca co innego niż Tobie.
Januszr - Pią 01 Cze, 2012 08:47

No to może dlatego, że w tym samym momencie każesz nadać wartości zero, oraz liczyć do 10 oraz zmianieć skalę?
bidon184 - Pią 01 Cze, 2012 13:15

a ja powiem szczeze kompletnie nie rozumiem co chcesz zrobic i kompletnie nie kumam co niby ten scrypt wyzej ma zrobic?jakbyś w skrocie opisal ,to moze mógłbym cos pomóc :roll:
Januszr - Pią 01 Cze, 2012 15:16

bidon184, to problem raczej z niezałączonym SWI... Ja mogę zgadywać... zgadywać... zgadywać... zgadywać...
vegas - Sob 02 Cze, 2012 10:04

Wiem panowie, że ciezko jest pewnie wywnioskowac bez załączonego pliku. Jak tylko pojawię się w domu załącze plik.

W skrócie opiszę co chcę zrobic. Mam 10 kółek, każde z nich jest osobnym movieclipem i nazwy ich są kolejnymi numerami z "_" przed każdą cyfrą czyli (_1, _2, _3 itd.) Kółka będą się przemieszczac, tańczyć i takie tam, ale w pewnym momencie chce wyzerować wartości xscale i yscale. Dlatego pętla ma to zrobić przez doklejenie "_" do kolejnego numerka w pętli.

Nie jestem programistą i chaotycznie piszę cokolwiek w kodzie dlatego zwracam się o wskazówkę. Załączę dzisiaj plik i może to bardziej rozjaśni Wasze wątpliwosci :)
Pozdrawiam

edit
Załączam plik

shastaan - Sob 02 Cze, 2012 20:39

Błąd polega na tym, że
Kod:
sklejany._xscale = 0;
zmienia skalę zmiennej a nie movie clipu.
http://szablony.freeware.info.pl/kodowanie.html
Nie chce mi się szukać rozwiązania, nigdy nie potrzebowałem tego zrobić a podejrzewam, że ktoś je tu poda bez zastanowienia :]

bidon184 - Pon 04 Cze, 2012 15:15

hym,szkoda ze nie dales tez swf ,bo nie mam jeszcze swisha zeby otworzyc ten swi,ale jak rozumiem chcesz zeby animacja przyotwieraniu była rozmiarow pierwotnych a potem w pewnym momencie zmniejszala sie do zdefiniowanej skali w petli az do np przejscia do innej strony,no to ja uzywam takiego kodu
setProperty("", _yscale, --);
setProperty("", _xscale, --);

mozna dołozyc jeszcze
setProperty("", _focusrect, false);
setProperty("", _quality, "MEDIUM");

i jak chcesz np dodatkowo obrocic

setProperty("", _rotation, --);
setProperty("", _x, --);
setProperty("", _y, --);

w miejsce -- wpisujesz wartosci

nie wiem czy o to biego ,poniewaz jak pisalem wczesniej nie mam czym jak narazie otworzyc tego swi a swf nie upnołes wiec nie mam jak podejrzec

vegas - Pon 04 Cze, 2012 20:32

shastaan napisał/a:
Błąd polega na tym, że
Kod:
sklejany._xscale = 0;
zmienia skalę zmiennej a nie movie clipu.

Dlatego właśnie chcę aby do tej zmiennej przypisać nazwę movieclipu. Bezskutecznie wg mojego kodu.

Cytat:
setProperty("", _yscale, --);
setProperty("", _xscale, --);


bidon własnie to staram się zrobić, tylko w miejsce "--" nie wiem co wpisać, poza tym, że nazwę mojego obiektu. Tych obiektów będzie dużo i każdy będzie zaczynał się od "_".
W jednym momencie, nie ważne czy na początku czy na końcu, mają się zeskalować do zera. Jak to przejdę to zrobię płynne przejście ;)

SWF, który załączam jest statyczny i nic się na nim nie dzieje ;)
Jak źle tłumacze to może zakończę "karierę" ;)

Pozdrawiam

bidon184 - Wto 05 Cze, 2012 12:30

niom,pobralem ten swf i za diabla nie moge tego zaadoptowac do adobe ,czyli niestety nic za bardzo ci nie pomoge,ale ten scrypt co tam masz to cos z nim nie tak bo kompilator zwraca bład masz tak:
if (!hasOwnProperty("_load03775C58"))
{
_load03775C58 = true;
tellTarget("..")
{
var skalowanie = 0;
skalowanie = 1;

while (skalowanie++, skalowanie < 10)
{
var sklejany = "_" + skalowanie;
sklejany._xscale = 0;
sklejany._yscale = 0;
} // end while
} // End of TellTarget
} // end else if
}
else
{
stop ();

a żeby kompilator nie zwracal błedu powinno byc tak:
if (!hasOwnProperty("_load03775C58"))
{
_load03775C58 = true;
tellTarget("..")
{
var skalowanie = 0;
skalowanie = 1;
if (skalowanie < 10)
{
++skalowanie;
if (skalowanie >= 10)
{
}
else
{
var sklejany = "_" + skalowanie;
sklejany._xscale = 0;
sklejany._yscale = 0;

} // end if
} // end else if
} // End of TellTarget
} // end if
stop ();

lub tak:
if (!hasOwnProperty("_load03775C58"))
{
_load03775C58 = true;
tellTarget("..")
{
var skalowanie = 0;
skalowanie = 1;
if (skalowanie < 10)
{
for (;;)
{
++skalowanie;
if (skalowanie >= 10)
{
break;
}
var sklejany = "_" + skalowanie;
sklejany._xscale = 0;
sklejany._yscale = 0;
}
}
}
}
stop();

pszynajmniej moj mądry adobe i macromedia tak mowia :cry:

Januszr - Wto 05 Cze, 2012 14:59

bidon184 kup se słisz...
eden - Wto 05 Cze, 2012 15:30

Cytat:
W skrócie opiszę co chcę zrobic. Mam 10 kółek, każde z nich jest osobnym movieclipem


Ok, Fajnie.



Cytat:
ale w pewnym momencie chce wyzerować wartości xscale i yscale

No to zrób sobie funkcje:



Cytat:
Nie jestem programistą i chaotycznie piszę cokolwiek w kodzie dlatego zwracam się o wskazówkę

Staraj się unikać nazw klipów i zmiennych zaczynających się od znaku " _ "

bidon184 - Wto 05 Cze, 2012 15:35

no wlasnie ,tak chce tego swish ale z tego co widze to same 32 bity chodza,hym,a ja mam 64 bit windows ultimate ,to będzie mi śmigać ?
eden - Wto 05 Cze, 2012 15:40

Tak, będzie śmigać.
vegas - Wto 05 Cze, 2012 18:17

Cytat:
_root["mc"+i]


O takie banalne rozwiązanie mi chodziło. Wielki dzięki eden.
Dzięki wszystkim za odpowiedzi.

Pozdrawiam


Powered by phpBB modified by Przemo © 2003 phpBB Group