[flash/actionscript] raar array probleem

Pagina: 1
Acties:

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Nav B-Top's Flash MX-draadje vond ik dat ik ook maar es aan de action-scripting moest. Ik kon gisternacht kiezen tussen een tentamen telematica leren of proberen Flash 5 een beetje te doorgronden. 3 keer raden.. nah laat maar :)

Flash MX wil ik (nog) niet aan beginnen; zeker niet nu net iedereen de flash5-plugin heeft. Binnenkort moet ik een soort marquee gaan maken waar dynamische newsheaders langs moeten komen. Moet wel lukken om dat in DHTML te maken, maar het zou natuurlijk mooier zijn om dat een keer in Flash te proberen.

Goed, ik heb dus eens even wat sources bekeken en een beetje op were-here rondgesnuffeld, en ik geloof dat ik de structuur nu aardig doorheb. Ik vond vooral de attachMovie-functionaliteit erg mooi; het niet weten van het bestaan daarvan heeft me een keer een hoop gezeik opgeleverd :)

Ik zat te denken dat ik een movieclip kon maken, met daarop een dynamisch tekstveld dat ik een naam meegaf (movie heet 'melp', tekstveld heeft var-naam 'content'). Dat text-veld is HTML-enabled, zodat ik straks gewoon lekker zelf linkjes kan maken (zou eigenlijk niet weten hoe ik het anders moest doen).

Daarna zou ik Flash een string voeren met daarin een link + een omschrijving. Ben het gaat testen met gewone array's, zonder gebruik te maken van externe variabelen, en dat ging goed. Toen heb ik B-Top's new XML() ideetje er even bijgepakt en alle zooi in een txt-file gestopt:
code:
1
2
3
4
5
Pelle Website;http://www.pelle.tk
Altavista;http://www.av.com
.
.
enz

Dit lees ik in, split ik op chr(10), en vervolgens split ik elk array-element weer op ';'. Nah, zie onderstaande code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function loadData(filename) {
    xmlMeuk = new XML();
    xmlMeuk.onLoad = parseData;
    xmlMeuk.load(filename);
}

function parseData() {
    items = xmlMeuk.toString();
    items = items.split(chr(10));
    for (i=0; i<items.length; i++) {
        urlDesc = items[i].split(';'); 
        // url      = 'http://www.av.com';
        _root.thingies[i]        = _root.attachMovie("melp", "ownage" + i, depth++);
        _root["ownage" + i]._x  = 100;
        _root["ownage" + i]._y  = 10 + (30 * i);
        _root["ownage" + i].content = '<a href="' + urlDesc[1] + '">' + urlDesc[0] + '</a>'; 
    } 
}

loadData("urls.txt");
stop();

Dit werkt alleen niet :(
Alleen de laatste link+omschrijving uit de text-file worden getoond. Als ik echter urlDesc[1] (waarin steeds een url zit) vervang door vaste variabele url (die nu gecomment staat), zie je dat hij urlDesc[0] wel altijd goed uitleest en dat er dus op de een of andere manier iets mis is met urlDesc[1].

Ik doe vast iets n00b-achtigs fout maar ik kwam er in ieder geval niet uit vannacht. De bedoeling is dus dat het allemaal nog mooi gaat bewegen enzo, maar daar ga ik pas naar kijken als dit gewoon werkt zoals ik zou verwachten.

Voor de liefhebbers, hier een zip met .fla en .txt erin.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je array wordt niet goed gevuld!

Verander in je MC eens de eigenschap van je textvak, zodat HTML niet wordt geinterpreteerd (:?) (HTML vinkje uitzetten ;)), dan zie je wat er in je array staat.

Ik krijg dan nl.:
vakje 1 - 6
code:
1
2
3
4
5
6
7
1. <a href="http://www.pelle.tk
2. <a href="http://www.pelle.tk
3. <a href="http://gathering.tweakers.net/listtopics.php/13
">GoT forum 13</a>
4. <a href="http://www.pelle.tk
5. <a href="http://www.altavista.com
6. <a href="http://gathering.tweakers.net/listtopics.php/13">GoT forum 13</a>

p.s.: wat me ook opviel, was het ontbreken van escape slashes voor je dubbele aanhalingstekens ("). Maar dat verhielp het probleem dus ook niet.

Ik ben zelf nog aan het kijken, wat er precies misgaat in het samenstellen van je array!

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Het probleem ligt hem in het text file, er zitten naar chr(10) ook nog chr(13)'s in.......
die kan je er ook uit halen door dit te doen:
code:
1
2
3
4
5
    items = xmlMeuk.toString();
    items = items.split(chr(13));
    items = items.join('');
    trace(items);
    items = items.split(chr(10));

Ik heb dit ook wel eens gehad....toen met text pad in geloof ik in utf gesaved; probleem weg. Moet ik ff kijken ....

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Op donderdag 21 maart 2002 14:10 schreef B-Top allemaal zinnige dingen:
[knip]
Wow, you da man!
Snap nog niet wat die trace()-functie doet, maar daar zal ik vanavond wel eens even naar loeren. Moet nu echt bezig met telematica-tentamen (:r), maar zo te zien werkt het allemaal naar behoren. Thnks :)

Verwijderd

Trace()==Alert(), maar dan alleen in de development environment....een debug functietje dus.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Op donderdag 21 maart 2002 14:18 schreef B-Top het volgende:
Trace()==Alert(), maar dan alleen in de development environment....een debug functietje dus.
Ah, ik zie het.. zat me al af te vragen wat de Flash-debugmogelijkheden waren :)

Maar nu m'n volgende probleem; al deze tekst moet achter elkaar komen te staan, met zeg een pixeltje of 20 ertussen. Ik moet op de een of andere manier dus de lengte van een ingeladen stuk tekst uit kunnen lezen, waarna ik er 20 bij optel en de volgende tekst daar kan plaatsen.

Heb dit geprobeerd:
code:
1
_root["ownage" + i].content._width

.. maar die is leeg. Dit:
code:
1
_root["ownage" + i]._width

.. geeft wel een breedte terug, maar dat is de breedte van m'n hele tekstveld en niet van de tekst die erin staat. Is er een manier om de lengte van een tekst te bepalen? Ben op mijn zoektocht al langs dit topic gekomen, en dat is zo ongeveer precies hetzelfde als waar ik nu mee bezig ben, maar er ook daar kan ik niet echt een oplossing in vinden waar ik mee verder kan :)

Wie o wie?

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

ik heb in dit topic, van B-top deze gekregen.
En dat werkt perfect!

Het is even knutselen met die Java app, maar dan heb je dus per font alle breedtes van de letters. Dit stuk script plak je in je movie en je kan iedere string hier door heen halen en je hebt de lengte van de text.

C'est ca :)

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Zou wel cool wezen :)
Maar ik heb die meuk gedowned (zowel de GUI als de commandline) maar winzip slikt ze niet... 'does not appear a valid archive'-meldingen. Herdownloaden werkt ook niet; geen foute download of CRC-error ofzo.

Iemand die 'm even ongezipt kan mirroren?

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

Iemand die 'm even ongezipt kan mirroren?
gooi het wel even in je mail, ok?

mijn gedownde versies, doen het trouwens wel gewoon...

schiet wel lekker op met dat telematica, hè?!:)

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Op vrijdag 22 maart 2002 03:35 schreef tie-rep het volgende:
gooi het wel even in je mail, ok?
Thnks dude :)
Had hier JBuilder nog liggen, dus kan het nog draaien ook zonder additional downloads. Maar eerst es ff de instructions doorbladeren.
schiet wel lekker op met dat telematica, hè?!:)
Tentamen was vanavond om 18.30; was na een half uur al weg (eerder mocht niet :)), denk dat het wel een dikke 7 of hoger wordt. Ik weet nu dan ook alles van ATM, Frame relay, FDM, RS-232, Differential Manchester encoding en nog meer van dat soort boeiende :O zooi.

/edit
Cool, het werkt! :)
Tenminste, het includen geeft foutmeldingen:
code:
1
#include "stringWidthTimes_New_Roman.as";

geeft:
code:
1
2
Scene=Scene 1, Layer=Layer 2, Frame=1: Line 1: Malformed #include directive
     #include "stringWidthTimes_New_Roman.as";

..terwijl het toch zo in de help-files staat :?

Anyways, ik plak de code wel gewoon in m'n frame; ga toch niet meer dan 1 font gebruiken.

En daarna op naar het volgende probleem: hoe het hele zwikkie te laten loopen en te stoppen bij een rollOver. Heb er wel wat ideetjes over, maar dat zien we morgen wel :)

/edit 2
darn, waarom ben ik nog wakker? Over 3 uurtjes weer op |:(

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

Op vrijdag 22 maart 2002 03:50 schreef Pelle het volgende:
[..]
code:
1
2
3
Scene=Scene 1, Layer=Layer 2, 
Frame=1: Line 1: Malformed #include directive
     #include "stringWidthTimes_New_Roman.as";

..terwijl het toch zo in de help-files staat :?
welkom bij een MM-prdouct: dat in de helpfile is dus fout! je moet juist in deze regel geen ";" op het einde zetten!

ff linkie zoeken, maar daar heb ik dus ook problemen mee gehad. link

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Op vrijdag 22 maart 2002 10:23 schreef tie-rep het volgende:
welkom bij een MM-prdouct: dat in de helpfile is dus fout! je moet juist in deze regel geen ";" op het einde zetten!
Ah, ik vermoedde al zoiets.. maar als het in de helpfile staat dan ben ik altijd geneigd dat te geloven.. niet meer doen dus :)

Verwijderd

Ach, de eerste keer dat ik probeerde te includen was het hetzelfde......maar ja, ik gebruik nou al een 4 jaar hun spul...dan wen je eraan :)

Kan me de laatste FlashForward in NY nog herinneren, ik stond te babbellen met een van de MM flash experts die ik wat sources&bugs liet zien, waarbij hij eigenlijk niets meer wist te zeggen (maar wel mijn siteje liet zien @macromedia office :) )

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Op vrijdag 22 maart 2002 10:48 schreef B-Top het volgende:
(maar wel mijn siteje liet zien @macromedia office :) )
Patser :)

maar wel erg cool overigens

Is het trouwens ook mogelijk om bij het attachen van een movie ook events aan die zonet geattachte movie te hangen, zoals een rollOver ofzo?

Verwijderd

Ja, da's dus een van de koele dingen van Flashmx.....daar kan je dus idd dynamisch events aan nieuw gemaakte mc's hangen.

Mijn flash 5 methodiek voor het dynamisch hangen van events is:
Maak een 2 lege MC's, hang een van beiden in de ander, zet daar dit event in:

onClipEvent(enterFrame){_parent._parent[_parent.actiontype+'_enter']();}

Dan zet je de linkage van de mc die deze mc bevat op een naampie....

Als je dan een nieuwe mc attached attach je deze mc daar weer aan, waarna je de variable actiontype zet.
Daarna voert ie elke movieclip.prototype.actienaam_enter uit op de MC waar het om gaat.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Op vrijdag 22 maart 2002 11:34 schreef B-Top het volgende:
Ja, da's dus een van de koele dingen van Flashmx.....daar kan je dus idd dynamisch events aan nieuw gemaakte mc's hangen.
Vaag dat ze daar nu pas met MX aan gedacht hebben dan. Dat is iets wat ik als verse Flash-n00b toch wel verwacht had in voorgaande versies.
Mijn flash 5 methodiek voor het dynamisch hangen van events is:
Maak een 2 lege MC's, hang een van beiden in de ander, zet daar dit event in:

onClipEvent(enterFrame){_parent._parent[_parent.actiontype+'_enter']();}
In de eerste MC, of in de tweede MC (die dus in die eerste hangt)?
Dan zet je de linkage van de mc die deze mc bevat op een naampie....

Als je dan een nieuwe mc attached attach je deze mc daar weer aan, waarna je de variable actiontype zet.
Daarna voert ie elke movieclip.prototype.actienaam_enter uit op de MC waar het om gaat.
Now you've lost me :)

Ik maak 2 lege MC's, zet de een in de ander en voeg dat stukje code toe. Ik noem 'm bij linkage 'leegding' en vervolgens kan ik bijvoorbeeld dit doen?
code:
1
2
3
4
5
6
_root.attachMovie("melp", "blaat", 4);
_root.blaat.attachMovie("leegding", "test", 5);
_root.blaat.actiontype = "rollOver";
_root.blaat.rollOver_enter = // en dan hier hetgeen 
                     // ik wil doen als er over 
                     // 'blaat' geroloverd wordt?

Kan het hier niet testen btw, heb hier alleen Flash 4 tot m'n beschikking.

/edit
$layoutverneuking--;

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Okay, zoals beloofd, mijn fijne dynamische flash5-scrollert:

http://test.upnet.nl/fles/

De data hierin haalt bij uit een phpscript die ze weer uit een db trekt: http://test.upnet.nl/fles/test.php

Alleen: getest op m'n werk met Flash5-plugin, en dat werkt. Maar hier thuis met FlashMX plugin werkt hij niet helemaal zoals zou moeten (en bij willem169 ook niet).

Heb van B-Top een javascriptje geripped dat detecteert of de muis op of naast m'n movie staat. Ik wil namelijk dat het geheel stopt met scrollen als ik er met m'n muis bovenop sta. Dat werkt prima met die Flash5 plugin, maar FlashMX bakt er niks van en scrollt (al dan niet haperend) gewoon lekker door.

Mijn vraag is dus: hoe ga ik dit oplossen? Het enige wat er dus moet gebeuren is dat die movie stilstaat bij een rollover, en weer verder gaat bij een rollout.

De source vind je hier: http://test.upnet.nl/fles/version_1.0.fla

Dit check ik momenteel dus met:
code:
1
2
3
if (_root.mouseout == 1) {
    // code uitvoeren
}

..maar zoals gezegd: FlashMX onder IE vind dat maar niks. Heb me de touwtyfus gezocht waar het aan kon liggen, maar ik zou het dus echt niet weten. Wie o wie?

/edit
oh,when? vond het allemaal wat vaag, dus hierbij nog even kort: hoe detecteer -ik zonder gebruik te maken van JS- of m'n muiscursor binnen of buiten de flashmovie is?

/edit 2
Heb geprobeerd met een button met alleen een hitstate, zo groot als de movie zelf, die var te triggeren. Button zit in layer helemaal bovenop, en zet variabele dus op 0 en 1 bij rollover en rollout. Zie http://test.upnet.nl/fles/test/version_1.0.html

Werkt alleen als er geen linkje onder zit.. grrr :(

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Ben eruit gekomen met de hulp van oh,when? :)
Link: http://test.upnet.nl/fles/

Oude source is offline, nieuwe source hier: http://test.upnet.nl/fles/version_1.1.fla

Van mij mag iedereen 'm gebruiken, maar even netjes vragen als je dat van plan bent, zou ik erg op prijs stellen :) Ook verbeteringen in code zijn altijd welkom overigens.. ben er nog lang geen held in en zonder feedback zal ik dat ook niet zo snel worden vrees ik :P

Verwijderd

Op dinsdag 26 maart 2002 00:42 schreef Pelle het volgende:
Ben eruit gekomen met de hulp van oh,when? :)
Link: http://test.upnet.nl/fles/

Oude source is offline, nieuwe source hier: http://test.upnet.nl/fles/version_1.1.fla

Van mij mag iedereen 'm gebruiken, maar even netjes vragen als je dat van plan bent, zou ik erg op prijs stellen :) Ook verbeteringen in code zijn altijd welkom overigens.. ben er nog lang geen held in en zonder feedback zal ik dat ook niet zo snel worden vrees ik :P
Erm, jah, ik wil nie zeuren, maar er is wat mis met je credz.... ;
code:
1
2
3
/*  nice txt-loading function, thnks to oh,when? 
    for coding this XML-hack and to B-Top for bringing 
    it into my attention :) */

[me=10445] kucht......<bullsjit>[/code]

Die heb ik gewoon zelf gecode hoor....dan wil ik ook credit ook :)

Verwijderd

Ik wil absoluut geen roet in het eten gooien maar heb je geprobeerd een paar keer op de refresh button te drukken?

Afbeeldingslocatie: http://home.planet.nl/~vrie4634/whtf.gif


edit: jah flash player 6 (volgens mij kun je beter bij 5 blijven)

Verwijderd

Yep, heb na refreshen ook hetzelfde probleem...

Verwijderd

same problem here,, en heb ook nog af en toe als ik eraf ga dat het stil blijft staan. (IE6-WinXP)

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Hmmmm.. het refresh-probleem had ik nog niet gezien zelf.. grbml hier doet 'ie inderdaad ook zo raar met Flash Player 6 :(

Terwijl het toch echt gewoon werkte 2 dagen geleden. Iemand een idee waar dat aan zou kunnen liggen?

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:17

Pelle

🚴‍♂️

Topicstarter
Op dinsdag 26 maart 2002 20:13 schreef B-Top het volgende:
Erm, jah, ik wil nie zeuren, maar er is wat mis met je credz.... ;
Die heb ik gewoon zelf gecode hoor....dan wil ik ook credit ook :)
Ere wie ere toekomt natuurlijk, maar ik begreep weer van oh,when? dat hij die XML-hack had gebouwd, maar dat zal ik dan wel weer verkeerd begrepen hebben ofzo :+

Zal het zo even in orde maken, zal er wel even iets algemeens van bouwen. Done :)
Pagina: 1