[Flash ActionScript] Movie hergebruiken met variabele waarde

Pagina: 1
Acties:

  • mkanon
  • Registratie: September 2002
  • Niet online

mkanon

www.kanonweb.nl

Topicstarter
Ik hoop dat dit een duidelijk verhaal word.
Ik heb een text bestand wat ik uitlees in flash, dit textbestand heeft zo'n 40 variabelen. zeg maar

var1 t/m var40. al deze variabelen kunnen de waarde 1, 2 of 3 hebben. In flash heb ik vlakje wat drie kleuren heeft. De drie kleuren staan voor de 3 waarden (1,2 of 3) nu moet het hele filmpje uit 40 van deze zelfde vlakjes naast elkaar bestaan (in 1 layer, frame), en elk zo'n vakje moet gekoppeld zijn aan de bijbehoordende waarde en dus de bijbehoorende kleur krijgen, ik kan me niet voorstellen dat ik nu 40 unieke movies moet maken die elk hun eigen waarde ophalen, er moet een manier wezen om de movies te dupliceren en van te voren aan tegeven welke movie welke waarde gebruikt. bv dmv de instance name. Maar hoe?

Ik maak gebruik van flash 8!

I reject your reality and substitute my own!


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-04 22:57

Janoz

Moderator Devschuur®

!litemod

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Je maakt een movieclip, daarin plaats je de nodige componenten. Plaats deze op je root en noem hem 'global_item_mc'
Vervolgens laadt je het txt bestandje in, en maak je een for lus aan de hand van het aantal variabelen.

Flash ActionScript:
1
2
3
4
5
6
for (var i = 0; i < this.aantal; i++) {                                                         
    duplicateMovieClip("global_item_mc", "menu_item"+i, i);
    setProperty(["menu_item"+i], _x, 0);
    setProperty(["menu_item"+i], _y, 0);
    set(["menu_item" + i] + ".property1", eval("this.var" + i));                            
}


verder kun je met setProperty de gewenste data versturen naar de duplikaat van de mc
edit:
even for lus in geklust :)

[ Voor 42% gewijzigd door dip op 15-11-2005 15:10 ]

It's scientifically known, that base improves the tase of cheezes!


  • Willem
  • Registratie: Februari 2001
  • Laatst online: 20:59
Even je topictitle decapitalized :P

Motor onderhoud bijhouden


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Waarom eigenlijk nog met setProperty werken als je gewoon direct de eigenschappen van een object kan aanpassen?

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.


  • mkanon
  • Registratie: September 2002
  • Niet online

mkanon

www.kanonweb.nl

Topicstarter
1 van de problemen, en dat vertel ik dus weer helemaal verkeerd is dat de nummers niet oplopen!
Ik heb het fla-tje met de textfile (straks php) even online gezet op www.kanonweb.nl/flash/ misschien kan iemand zijn licht er op laten schijnen!

I reject your reality and substitute my own!


  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

BtM909 schreef op dinsdag 15 november 2005 @ 15:21:
Waarom eigenlijk nog met setProperty werken als je gewoon direct de eigenschappen van een object kan aanpassen?
omdat je anders moet gaan evallen en dit net ff iets netter en overzichterlijker is :)

It's scientifically known, that base improves the tase of cheezes!


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-04 22:57

Janoz

Moderator Devschuur®

!litemod

Je hebt het over een plattegrond van beschikbaarheid van een nieuwbouwwijk. Tja, elk blokje heeft een redelijk unieke form en unieke locatie. Dat is nogal lastig dynamisch te maken. Bestaat er trouwens niet gewoon enkel een polygoon die je middels een property van kleur kunt laten veranderen?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Niet slim, niet slim! :)
Hiervoor hebben we arrays gekregen!

Wat je bv. kunt doen in één string maken die wordt ingeladen: myVar=1211321212323231212. Deze laadt je op precies dezelfde manier in flash. Met de method split() maak je van deze variabele een array met 40 waarden. Vervolgens loop je door deze array:

Flash ActionScript:
1
2
3
4
5
6
var myArr:Array = myVar.split ("");
for ( var i:String in myArr )
{
    var myMC:MovieClip = this.attachMovieClip ( "myMC", "myMC" + i, this.getNextHighestDepth (), { _x: ..., _y: ... );
    myMC.gotoAndStop ( myArr[ i ] );
}


De x en y waardes van de movieclips mag je zelf bepalen ;)
dip schreef op dinsdag 15 november 2005 @ 15:52:
[...]


omdat je anders moet gaan evallen en dit net ff iets netter en overzichterlijker is :)
Volgens mij loop je bijna 6 jaar achter ;) setProperty gebruiken we al sinds Flash 4.0 niet meer en evallen hebben we nooit aan gedaan :)

[ Voor 29% gewijzigd door Verwijderd op 15-11-2005 16:11 ]


  • mkanon
  • Registratie: September 2002
  • Niet online

mkanon

www.kanonweb.nl

Topicstarter
Janoz schreef op dinsdag 15 november 2005 @ 16:08:
Je hebt het over een plattegrond van beschikbaarheid van een nieuwbouwwijk. Tja, elk blokje heeft een redelijk unieke form en unieke locatie. Dat is nogal lastig dynamisch te maken. Bestaat er trouwens niet gewoon enkel een polygoon die je middels een property van kleur kunt laten veranderen?
De kavels zijn het zelfde kwa vorm, t's een blokje! alleen allemaal andere nummers!!

I reject your reality and substitute my own!


Verwijderd

mkanon schreef op dinsdag 15 november 2005 @ 16:44:
[...]


De kavels zijn het zelfde kwa vorm, t's een blokje! alleen allemaal andere nummers!!
Wat is er mis met de oplossing van dip (op de setProperty en eval na)? Of met de oplossing van het gebruiken van een array?

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

tie-rep

nu met ir. !

Verwijderd schreef op dinsdag 15 november 2005 @ 16:09:
Niet slim, niet slim! :)
Hiervoor hebben we arrays gekregen!

Wat je bv. kunt doen in één string maken die wordt ingeladen: myVar=1211321212323231212. Deze laadt je op precies dezelfde manier in flash. Met de method split() maak je van deze variabele een array met 40 waarden. Vervolgens loop je door deze array:
^^
beste manier om dit te doen!

mijn post geeft weinig extra waarde aan dit topic, maar ik zie dat er weer 'n promo is voor 'oude stijl code' en dat kan dus beter!
Volgens mij loop je bijna 6 jaar achter ;) setProperty gebruiken we al sinds Flash 4.0 niet meer en evallen hebben we nooit aan gedaan :)
moest hier hartelijk om lachen! :+

  • mkanon
  • Registratie: September 2002
  • Niet online

mkanon

www.kanonweb.nl

Topicstarter
Verwijderd schreef op dinsdag 15 november 2005 @ 16:09:
Niet slim, niet slim! :)
Hiervoor hebben we arrays gekregen!

Wat je bv. kunt doen in één string maken die wordt ingeladen: myVar=1211321212323231212. Deze laadt je op precies dezelfde manier in flash. Met de method split() maak je van deze variabele een array met 40 waarden. Vervolgens loop je door deze array:

Flash ActionScript:
1
2
3
4
5
6
var myArr:Array = myVar.split ("");
for ( var i:String in myArr )
{
    var myMC:MovieClip = this.attachMovieClip ( "myMC", "myMC" + i, this.getNextHighestDepth (), { _x: ..., _y: ... );
    myMC.gotoAndStop ( myArr[ i ] );
}


De x en y waardes van de movieclips mag je zelf bepalen ;)


[...]

Volgens mij loop je bijna 6 jaar achter ;) setProperty gebruiken we al sinds Flash 4.0 niet meer en evallen hebben we nooit aan gedaan :)
Zou je dit voor mijn probleem misschien nog wat kunnen uitleggen? want ik ben wat dit actionscript betreft nog wat een NOOB.... Deze herhaling ? { _x: ..., _y: ... ); hoe moet ik die zien ? en hoe moet m'n movie dan heten ? myMC?


Ik heb dus m'n 40 variabelen met allemaal de waarde 1, 2 of 3...
En in m'n flash moeten ze de juiste kleurtjes bij de waardes zoeken.. over 40 vakjes..

[ Voor 18% gewijzigd door mkanon op 17-11-2005 09:20 ]

I reject your reality and substitute my own!

Pagina: 1