Skocz do zawartości
Ghostman

[AS3] odwołanie do obiektu wewnątrz buttona

Rekomendowane odpowiedzi

Witam

Mam przycisk o nazwie instancji p1. Wewnątrz tego przycisku jest etykieta tekstowa w miejscach over i down o nazwie instancji t1. Chce się dostać do tej etykiety tekstowej i poprzez shared object udostępnić ją w całości razem z formatowaniem do drugiego pliku swf.

 

problem polega na tym ze nie wiem jak sie do niej dostać.

 

taki fragment kodu nie działa. Wywala że jest próba dostępu do niezdefiniowanej metody swpachildren.

 

so.data.tekst = p1.swapChildren(t1)

Ktoś wie jak to idzie załatwić?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Daj trochę więcej kodu.

 

Co mogę powiedzieć n.t. tej linijki:

W AS3 swapChildren jest typu Void, czyli może zwrócić co najwyżej nic. W związku z tym, linia, którą podałeś:

so.data.tekst = p1.swapChildren(t1)
nie ma racji bytu. Tym bardziej, że swapChildren wymaga dwóch argumentów (child1 i child2), już samo podanie jednego skutkuje błędem.

 

Co poza tym:

Jeżeli masz na timeline button i to jest button utworzony przez zrobienie sobie obiektu typu "przycisk", to jest to obiekt klasy SimpleButton. A jeżeli to jest simple button, to funkcji swapChildren po prostu w nim nie ma, bo to jedna z wielu funkcji (specyfika buttonów), które dziedziczone z nadrzędnych klas nie są.

 

A wreszcie, na zdrowy chłopski rozum (czyli po ludzku, bez programistycznego bełkotu) - nie ma możliwości dostania się do tego tekstu, jeżeli jest w buttonie na drugiej klatce, a button startuje (i stoi po odpaleniu filmu) na pierwszej. Po prostu w momencie wywołania skryptu ten tekst jeszcze nie istnieje na timeline.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jest tak

var url:String;var zapytanie:URLRequest;var so:SharedObject;so = SharedObject.getLocal("plik", "/");url = "testowy.html"....p1.addEventListener(MouseEvent.CLICK, parter1);function parter1(evt:MouseEvent):void {	so.data.miejsce = "1"	so.flush()	laduj();}....function laduj(){	  zapytanie = new URLRequest(url);	  try {    navigateToURL(zapytanie, '_blank');  } catch (e:Error) {    trace("Błąd");  }}
p1 to jest instancja buttona na stage'u w formie niewidocznego kwadratu

w drugim pliku jest odczyt tej zapisanej pozycji i załadowanie odpowiednich obiektów.

 

Co do etykiety. Ona mi nie jest potrzebna od razu tylko dopiero jak się wyświetli. Po najechaniu na obiekt wyświetla się etykieta tekstowa i po kliknięciu robi się ten kod wyżej i otwiera się nowe okno i tam jest odczyt. Jeszcze chce zrobić, żeby był zapis tej etykiety do pliku i odczyt w drugim swf.

Edytowane przez Ghostman

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...