Marcin Knitter

Marcin Knitter Senior PHP Developer

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.

Witam, wszystkich forumowiczów.

Mam taki problem:
Importuje z Corela grafikę wektorową do Flasha (Eksport z Corela do *.AI, a następnie Import we Flashu), dzięki temu mam zachowane warstwy.
Grafika zawiera powiedzmy 60 obiektów składowych, które tworzą 20 bloków. Jeden blok to prostokąt z wypełnieniem, w którym znajdują się dwa pola tekstowe (na oddzielnych warstwach).

Moim zadaniem jest, klikając na dany blok, przeczytać zawartość pól tekstowych do zmiennej (pól txt wewnątrz prostokąta).

Niestety nie wiem jak odwołać się do klikniętego obiektu bo:
- importuje się jako obiekt graficzny (czy można go automatycznie przekonwertować na np. MC lub Button?)

Chodzi mi o możliwość pobierania wartości pól txt w locie (tylko z bloku klikniętego myszką).

Moje pytanie:
W jaki sposób mogę uzyskać dostęp do własności opisanych przeze mnie obiektów. Nie wiem czy w jakiś sposób mogę zaimportowaną grafikę i odpowiednie pola txt wrzucić do klipu mc (z automatu).
Czy istnieje obiektowy sposób na odwołanie się do niepodpisanych obiektów (coś w stylu root, this lub parent.parent child)?

Niestety dopiero zaczynam prawdziwą przygodę z programowanie OP, dlatego bardzo proszę o pomoc.

Pozdrawiam
Marcin
Tomasz Wiśniewski

Tomasz Wiśniewski Unity3D / Augmented
Reality / Virtual
Reality

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.

Witam

Generalnie do każdego obiektu można się z ASa odwołać. Natomiast mam wątpliwości do samej struktury tych obiektów o których mówisz.

Po pierwsze niejasne jest dla mnie sformułowanie "blok" - czym ten blok jest u Ciebie we Flashu? Grupą? MovieClipem? Czy w ogóle nie jest niczym i są to po prostu osobne kształty? ;D

Druga sprawa (może nawet bardziej zasadnicza), to w jakiej formie zostały przeniesione te texty, które chcesz odczytać. Czy po przeniesieniu do Flasha są to pola tekstowe StaticText, czy też są to kształty? Bo jeśli przenoszą Ci się jako krzywe, to tekstu z nich nie odczytasz (chyba że chcesz pisać program do rozpoznawania tekstu :P)

Najlepiej wrzuć gdzieś źródło we .fla, żeby było wiadomo o czym konkretnie mówimy ;)

Pozdrawiam
Tomek

konto usunięte

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.

Marcinie wszystko co importujesz z Illustratora, FLash przeczyta jako zbior ksztaltow. O ile odwolac sie do nich mozna jak napisal Tomek to przypisac eventow juz sie nie da - trzeba wszystko pozamieniac (recznie w tym przypadku) na MC.

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.

Zakładając, że dana grupa o której piszesz to obiekt, wówczas robisz coś na kształt:



function onClik(e:MouseEvent) {
var mcGrupa = e.currentTarget;

for (var i:int = 0; i< mcGrupa.numChildren; i++) {

var tmpDO:DisplayObject = mcGrupa.getChildAt(i);

if (tmpDO is TextField) {
var tmpTF:TextField = TextField(tmpDO);
trace (tmpTF.text);
}

if (tmpDO is StaticText) {
var tmpST:StaticText = StaticText(tmpDO)
trace (tmpST.text);
}
}

}


Powyższy kod zadziała, o ile tekst masz zaimportowany jako "editable".Mariusz Błaszczyk edytował(a) ten post dnia 11.02.10 o godzinie 10:37

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.

Michał Mikłowski:
Marcinie wszystko co importujesz z Illustratora, FLash przeczyta jako zbior ksztaltow. O ile odwolac sie do nich mozna jak napisal Tomek to przypisac eventow juz sie nie da - trzeba wszystko pozamieniac (recznie w tym przypadku) na MC.

podczas importu trzeba zaznczyc ktore obiekty maja byc mc w przypadku importu z ai a jezeli importujesz z psd to w opcjach mozesz ustawic zeby wszystkie obiekty byly konwertowane na mc.

konto usunięte

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.

o fucktycznie, nigdy nie zwrocilem na to uwagi :)
Marcin Knitter

Marcin Knitter Senior PHP Developer

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.

Witam, dziękuje za zainteresowanie tematem.

Faktycznie można konwertować obiekty z IA na MC w czasie importu, już ta informacja będzie bardzo przydatna.

Tomku, przepraszam że byłem nie precyzyjny, już się poprawiam.
Blok - w moim przypadku nie jest niczym konkretnym. Na trzech warstwach mam rozlokowane obiekty (dzięki Michałowi będą to MC):
warstwa 1 to text,
warstwa 2 to text,
warstwa 3 to mc z prostokątem w którego obrysie leżą pola tekstowe z warstwy 1 i 2.
Blokiem nazywam po prostu te trzy elementy (które są oddzielnie) ale ja chce odwoływać się do wartości pól tekstowych, które leżą wewnątrz klikniętego prostokąta.

Niestety po imporcie obiekty (tu mc) nie są nazwane, więc nie mogę odwoływać się do nich bezpośrednio. Stąd pytanie w jaki sposób można to zrobić z poziomu AS3.
Nie przyglądałem się jeszcze rozwiązaniu Mariusza, ale currentTarget wygląda obiecująco.

Pozdrawiam was serdecznie,
jeżeli jeszcze coś przyjdzie wam do głowy, będę wdzięczny za sugestie.

konto usunięte

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.


for( var a:int = 0; a < numChildren; a++)
{
trace(getChildAt(a));
}
Marcin Knitter

Marcin Knitter Senior PHP Developer

Temat: AS3 Odwoływanie się do nie podpisanych obiektów.

Dziękuje za poświęcony czas, wasze uwagi były bardzo pomocne. Problem został rozwiązany. :-)

Pozdrawiam



Wyślij zaproszenie do