PDA

Volledige versie bekijken : Label.text "undefined" - fout ?


Herre
%Europe/Berlin %652 %2005, 16:39
Hallo Flash-goeroes, :D

Na een lange tijd zoeken heb ik besloten jullie toch maar eens lastig te vallen met een vraagje.

Ik heb hier een flash-filmpje gemaakt voor een nieuws-lijst en archief, waarbij ik gegevens uit een xml-bestand in verschillende components oplaadt die zich op een scene bevinden. Dat zijn een paar label-componenten, een image-loader, een datagrid, ... Allemaal geen probleem, ook het binden en scrollen tussen de datagrid en m'n components verloopt naar wens.

Wat ik nu wil doen is: als in het xml-bestand mijn link-tag is ingevuld met "false", dan mag een button (ik heb 'm "launch" genoemd) niet zichtbaar zijn. Als de link tag met een url is ingevuld, dan moet de button launch visible worden, en als je erop klikt moet hij de betreffende url oproepen.

Om dit te verwezelijken dacht ik dat het volstond om een label component te maken (ik heb 'm "launch_link" genoemd, die ik bind aan het link-veldje van m'n xml-file, maar als ik daarna de waarde ervan in de actionscript-code opvraag komt er steeds "undefined" in de trace terecht, ondanks dat ik wel de goeie waarde op het scherm zie. De code om m'n button invisible te maken is uiteraard "buttonName.visible = false", maar mijn probleem is dus die variabele te kunnen ophalen. Ik laad alles op met de XMLConnector-component, dus niet met Actionscript zelf.

Ik wil ook dat die code die checkt of m'n button al dan niet moet getoond worden, elke keer wordt uitgevoerd als de waarde van m'n label wijzigt (dus elke keer als ik op de next of prev-knop duw, of als ik in de datagrid een nieuw record selecteer).

Heeft er iemand enig idee hoe dit zou mogelijk kunnen gemaakt worden?

Ik heb voor de gemakkelijkheid m'n fla, xml en wat thumbnails in een zip-bestandje gezet:
http://users.pandora.be/desmet/list.zip

Indien mogelijk: graag jullie hulp :#

Herre

mateo)
%Europe/Berlin %821 %2005, 20:42
laat ik eerst zeggen dat ik helemaal nooit iets met die components doe, dus mijn kennis hieromtrent is beperkt. ik heb zitten zoeken naar een event als data of change waarmee een actie getriggered kan worden. het enige dat ik kon vinden was het cellPress event en op basis daarvan kom ik met de volgende workaround (want meer kan ik het niet noemen):

var cpl= new Object();
cpl.cellPress = function(event) {
hbitv = setInterval(hideButton, 200);
};
datagrid.addEventListener("cellPress", cpl);

function hideButton(){
clearInterval(hbitv);
if(launch_link.text != "null")
launch._visible = true;
else
launch._visible = false;
}

waarom dat moeilijke gedoe met setInterval? domweg omdat je launch_link tekst pas wordt ge-update na het cellPress event, dus we moeten even wachten voor de tekst veranderd is.
(oh ja, de code moet je ergens op frame 1 van je main movie neerzetten)

Herre
%Europe/Berlin %916 %2005, 22:59
Mateo) :

Hartelijk dank voor je stukje ActionScript. Het is de setInterval die het 'm deed...

(hier heb ik dus een uur of 3 op zitten zoeken, tot ik van colère de pc heb afgesloten om voor tv te gaan liggen)...


Nu even off the record: je schrijft dat je nooit iets doet met die components... hoe doe je het dan wel? Alles puur ActionScipt? En zoja: waarom?

Zou dat mijn Nieuws-list veel eenvoudiger maken? En zoja: hoe? :-)

Trouwens, mijn initiele opzet was eigenlijk een nieuws-lijst maken in het genre van de nieuws lists op http://www.carldekeyzer.com/ maar het is me geheel onduidelijk hoe ze het scrollen met die easing-achtige functionaliteit daarin hebben ingebouwd. Ik veronderstel dat dit ook al niet gaat op de wijze waarmee ik nu bezig ben (met die components dus)...

Ideetjes? Tips?

Herre

PS: jawadde, goe idee van mij op dit forum te registreren... thx!

mateo)
%Europe/Berlin %929 %2005, 23:17
nou ja, zo'n xml-bestandje kan je natuurlijk ook inladen met een paar simpele regels actionscript. dan kan je door de data heenlopen met een 'for loop' en per item in je xml een attachMovie doen en de xml-waarden toekennen. ik loop er misschien wat snel doorheen nu, maar daar zijn werkelijk erg veel tutorials (en van-de-plank-scriptjes) voor te vinden (trouwens ook voor dat easing effect). die site van carl de keyzer is trouwens echt prachtig gemaakt. dankjewel voor de link.

Dauntless
%Europe/Berlin %947 %2005, 23:44
Ik heb ook een uurtje zitten zoeken (rond 4 uur) maar 'k kreeg hem ook niet werkend... Pas als je de tweede x klikte werd het zichtbaar. Dat ligt dus ook aan het feit dat die data nog niet verandert is in de data component... Toen had ik ook gedacht om het met een setInterval op te lossen maar dit leek me toch slordig? :s Is er echt geen betere manier? (Ik weet namelijk ook NIETS van databinding en heb dan ook zowat elke component class opgezocht :p)

mateo)
%Europe/Berlin %950 %2005, 23:48
ja, ik ook. het is toch belachelijk dat er niet meer events gedefinieerd zijn? ik vind dit echt niet meer dan een workaround. anybody?

Dauntless
%Europe/Berlin %951 %2005, 23:50
Als die label component nu eens een gewone change eventHandler had... Dan was dit snel opgelost... Maar nééééé, die heeft hij natuurlijk niet :@ .

Bij die dataset component heb je iets van een deltaPacketChanged en een modelChanged maar daar is het me nog niet mee gelukt :p. Ook het rechstreeks linken van button naar dataset dmv component inspector ging niet vlotjes :p.

mateo)
%Europe/Berlin %957 %2005, 23:58
(en waar is het allemaal voor nodig?)

Herre
%Europe/Berlin %366 %2005, 09:48
En waar is het allemaal voor nodig?

Euhm, ja, awel :# , ik wil gewoon zo'n knappe nieuws-scroll-lijst zoals op die site van Carl De Keyser :D

Mijn flash-filmpje, met uw workaround, is het dichtste dat ik ben geraakt.

Ik heb zijn nieuws-lijst eens van naderbij bekeken, en het dunkt me dat dat hoofdvenster gewoon een kolom is van allemaal ge-attached mc's (met elk een thumbnail, datum, titel, descirption en evt launch-knop), die blijkbaar mooi schijnen te scrollen aan de hand van die 2 pijltjes-knoppen. Daarboven staat waarschijnlijk gewoon een soort mask in een bovenliggende layer zodat er steeds maar 1 item wordt getoond, en de scroll-buttons scrollen elke keer meteen de hoogte van 1 item naar boven of onder. Maar de scroll-buttons scrollen tesamen ook die kleinere lijstjes.

En het verbaast met dat dat allemaal zo snel ingeladen wordt. Surfen naar dat adres en floep, alle data is al ingeladen... (ook met trage verbinding!).

*droom*

Van die mc's heb ik idd al veel tutorials gezien, en het kortste wat ik daarbij geraakte was een scrollpane component, opgevuld met mc's die eruitzagen als zo'n nieuwsberichtje. Het nadeel was dat ik geen manier vond om een aparte next en previous knop erop te zetten die ik een soort functionaliteit gaf zoals:


on (click) {
scrollpaneName._scroll += 100;
}

(mijn mc's waren 100 pixels hoog)

Die knoppen wilde ik omdat ik daar zo geen lelijke scrollbalk wil (die kan ik wel afzetten), maar ik kan die scrollpane niet wijsmaken dat hij moet scrollen als ik op een andere button klik.

Vandaar dat ik dus dat scrollpane-plan met mc's overboord had gegooid en nu op de manier begonnen was zoals in m'n initieel onderwerp...

Ahum,

Herre

mateo)
%Europe/Berlin %929 %2005, 23:18
(herre, je begrijpt me verkeerd. ik bedoel dat die components vaak meer complexiteit brengen dan nodig is. geenszins mijn bedoeling om jouw werkstuk af te kraken.) als je met een paar regels actionscript een xml bestand kan inladen en verwerken, dan kan je je vervolgens concentreren op die mooie dingen waar je het over hebt. ik vind het overigens ook onwaarschijnlijk hoe snel die site laadt. ik kan je niet precies vertellen hoe het allemaal gedaan is. misschien kan je hem (of zijn web designer) eens een mailtje sturen. en hou ons op de hoogte.

Herre
%Europe/Berlin %799 %2005, 20:10
Ik denk niet dat die mannen gaan antwoorden en hun geheimen prijsgeve. Die site van Carl Dekeyser is gemaakt door Group 94, de marktleider in europe op gebied van flash-website-ontwikkeling en design.

Ondertussen is m'n nieuwslijst er toch al een stukje mooier op geworden (de doelpagina's van de launch-links en van de menu-items zijn voorlopig onbestaande pagina's, ik wilde jullie gewoon eens het eindresultaat laten zien):

http://users.pandora.be/desmet/test/

Groetjes en bedankt voor de hulp!

Herre

Dauntless
%Europe/Berlin %802 %2005, 20:16
Als het gaat om die 'exhibitions:' Wanneer je een foto aanklikt worden ook z'n buren in geladen. Dus boven en onder (Dan zit je met de buttons al goed). Daarnaast als je 2 hoger klikt zie je toch nog wel een klein laadbalkje dus die zijn nog bezig...

(Zo dénk ik toch dat ze het doen)

mateo)
%Europe/Berlin %996 %2005, 00:55
ziet er alvast mooi uit. ga zo door. leuk effectje op het menu trouwens. wat die group 94 betreft (nooit van gehoord): nooit geschoten is altijd mis. ik zou het altijd proberen.