Toon posts:

Flash external actionscript...

Pagina: 1
Acties:
  • 219 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste mensen,

de situatie is als volgt:

Ik heb een .swf gepublished met wat movieclips daarin een buttons en daarin teksten die op de buttons te zien zijn...

Nou heb ik met actionscript:
-de buttons _visible gemaakt of nie (dat werkt)
-de buttons RGB aangepast (dat werkt)
-de buttons oRollOver en RollOut aangepast (dat werkt)
-de teksten in de buttons aangepast (dat werkt)

als ik gewoon de .fla zo publiceer doet alles het perfect, doe ik #include "actionscript.as" met dus in de actionscript.as alle actionscript die eerste in de .fla zat doet alles het ook.
Maar verander ik iets in de actionscript.as dan moet ik eerst de .fla opnieuw publiceren om alles weer te laten werken zoals ik aangepast heb :S

Ik wil graag zoals je met LoadVarNum ook .txt bestanden kan inlezen, deze aanpassen ZONDER de .fla opnieuw te publiceren....is er ook een manier om de actionscript aan te passen buiten de al gegenereerde .swf en dat de .swf de geupdate file WEL pakt ?!?!?!?!

Beetje moeilijk geformuleerd allemaal maar hoop dat jullie me verder kunnne helpen....

  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 20:04
een #include tag zorgt ervoor dat het externe actionscript bestand compile-time geinclude wordt en niet runtime. Dat is dus gewoon de normale werking van een include.

Ik weet niet wat je run-time wilt aanpassen maar ik denk dat je een soort van configuratiefile wilt hebben waar je dan je wijzigingen kunt doen, zodat deze wijzigingen runtime opgepakt worden.

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 13-05 10:26

XangadiX

trepanatie is zóó kinderachtig

computerarts heeft ooit eens een uitstkende special gehad over het maken van een soort script taal voor je flash. Je moet je dus voorstellen dat je met loadvariables een serie nummers inlaad bijvoorbeeld en dat dat de coordinaten zijn om van een balletje dat over het scherm beweegt

Ik kan me voorstellen dat dat een oplossing is voor je.

Als je de sepy external actionscript editor gebruikt ( http://www.sephiroth.it/python/sepy.php ) dan kom je achter een leuke feature. Namelijk als je flash nog in de achtergrond draait en je drukt op ctrl+enter dan published hij je flash opnieuw MET je aangepaste script :)

Stoer; Marduq


Verwijderd

Topicstarter
Hallo,

Canard heeft het goed. Ik wil dus een soort configuratiebestand dat ik dan kan aanpassen zonder dat ik de .fla opnieuw moet publishen....

Hoe kan ik dit het beste doen ?

Geef eens een suggestie...aub

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

:/

Wat heb je zelf allemaal geprobeerd?

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.


  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 13-05 10:26

XangadiX

trepanatie is zóó kinderachtig

Ik geef toch net een suggestie? of wilde je liever uitgewerkte code en een tiental links zien?
XangadiX schreef op woensdag 12 januari 2005 @ 14:51:
computerarts heeft ooit eens een uitstkende special gehad over het maken van een soort script taal voor je flash. Je moet je dus voorstellen dat je met loadvariables een serie nummers inlaad bijvoorbeeld en dat dat de coordinaten zijn om van een balletje dat over het scherm beweegt

Ik kan me voorstellen dat dat een oplossing is voor je.
Als het specifieker moet dan zul je toch eerst moeten gaan vertellen wat je er nu eigenlijk mee wil gaan doen en wat je zelf al geprobeerd hebt.

[ Voor 12% gewijzigd door XangadiX op 12-01-2005 16:43 ]

Stoer; Marduq


Verwijderd

wat Xan zegt2: loadVariables is je vriend

edit: en Xan zegt het weer :P

[ Voor 36% gewijzigd door Verwijderd op 12-01-2005 16:43 ]


Verwijderd

Topicstarter
Als ik dus gewoon in de .fla het volgende zet:

hmenu_btn_mc1._visible = false; en bv this.tekst.textColor = 0x0000FF;

kan ik dus de 'false' en de '0x0000FF' inladen via LoadVarNum...
maar hoe ? hoe formuleer ik dit...dus verwijzend naar een variabele die ik ophaal in de external file ?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op woensdag 12 januari 2005 @ 16:46:
Als ik dus gewoon in de .fla het volgende zet:

hmenu_btn_mc1._visible = false; en bv this.tekst.textColor = 0x0000FF;

kan ik dus de 'false' en de '0x0000FF' inladen via LoadVarNum...
maar hoe ? hoe formuleer ik dit...dus verwijzend naar een variabele die ik ophaal in de external file ?
Succes met zoeken he :w. We horen wel als je er niet uit komt :)

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.


  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 13-05 10:26

XangadiX

trepanatie is zóó kinderachtig

nou nou nou, dat is niet de makkelijkste in flash, en het is best lastig als je hem niet ziet.
Wat je zegt is in principe waar, maar het werkt net ff anders

als ik tik loadVariables("mijnvariables.txt", 0) dan word mijn serie variabelen in de _root van flash geladen. Ik zou bijvoorbeeld ook (netter) kunnen doen: _root.container.loadVariables("mijnvariables") dan stopt ie die variabelen in een container. Voor het voorbeeld even niet nodig.

zet in een textbestandje:
code:
1
var1="ik"&var2="geloof"&var3="dat"&var4="ik"&var5="het"&var6="snap"

vervolgens tik je in flash:
Flash ActionScript:
1
2
loadVariables("mijnTextbestandje.txt",0)
trace(var1+var2+var3+var4+var5+var6)

als het goed is geeft die nu "ikgeloofdatikhetsnap" terug in je output window.
als je bijvoorbeeld
hmenu_btn_mc1._visible = false; en bv this.tekst.textColor = 0x0000FF;
dynamisch wil besturen dan kun je in textbestandje
code:
1
btnmenu1vis=false&textkleur=0x0000FF

zetten
en in je flash ziet dat er dan zo uit
Flash ActionScript:
1
2
3
loadVariables("scriptje.txt", 0)
hmenu_btn_mc1._visible = btnmenu1vis;
this.tekst.textColor = textkleur;


:*)

[ Voor 17% gewijzigd door XangadiX op 12-01-2005 16:58 ]

Stoer; Marduq


Verwijderd

Topicstarter
Hey,

het idee is zoals ik bedoel maar ik heb precies zoals je hebt aangegeven ingetypt en uitgevoerd maar hij pakt de variabelen nie....

ook het eerste voorbeeld met het output scherm wekt ook nie :'(

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
probeer dan eens:
code:
1
2
&btnmenu1vis=false&
&textkleur=0x0000FF&
in scriptje.txt te zetten, dus &-tekens eromheen.

In Flash zet je in frame 2 (we sluiten nu alle eventuele problemen uit: slome pc's slaan wel eens frame 1 spontaan over als er code in staat):
code:
1
loadVariables("scriptje.txt", "")


In frame 4 zet je:
code:
1
2
3
4
5
6
7
8
9
10
11
if (btnmenu1vis != undefined && textkleur != undefined) {
    trace(btnmenu1vis);
    trace(textkleur);
    //
    hmenu_btn_mc1._visible = Number(btnmenu1vis);
    this.tekst.textColor = textkleur;
    //
    stop();
} else {
    gotoAndPlay(_currentframe-1);
}
Op frame vier staan dan ook een dynamisch tekstveld met instancename "tekst" die bijvoorbeeld zwart is, met wat tekst erin, en een button met instancename "hmenu_btn_mc1"

Druk dan op appeltje+enter of control+enter, dit moet echt werken

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 13-05 10:26

XangadiX

trepanatie is zóó kinderachtig

* XangadiX zal nooit meer uit zijn hoofd actionscript posten
* XangadiX zal nooit meer uit zijn hoofd actionscript posten
* XangadiX zal nooit meer uit zijn hoofd actionscript posten
* XangadiX zal nooit meer uit zijn hoofd actionscript posten
... |:(

voor de goede orde:
code:
1
2
3
4
5
setInterval(tracer, 100)
_root.loadVariables("text.txt")
function tracer() {
   trace(var1+var2+var3+var4+var5+var6)
}

die werkt zeker, mits je dus een text file hebt, de "" mag je ook weg laten
code:
1
var1=ik&var2=geloof&var3=dat&var4=ik&var5=het&var6=snap

my mistake

[ Voor 11% gewijzigd door XangadiX op 12-01-2005 19:35 ]

Stoer; Marduq


Verwijderd

Topicstarter
Beste LB Back,

zoal je hebt beschreven heb ik het uitgevoerd en pakt ie het goed...

behalve de dingen doe hij MOET doen :S

de tekstvakjes worden gevuld en in de output komen de waardes te staan maar helaas worden mijn actionscript de waardes niet goed herkend en dus word de movieclip niet onzichtbaar en de kleur veranderd ook nie...spijt me

Verwijderd

Topicstarter
Beste XangadiX,

de functie werkt goed, te zien aan het output scherm...
output:
ikgeloofdatikhetsnap
ikgeloofdatikhetsnap
ikgeloofdatikhetsnap
...

nou heb ik zelf var7 toegevoegd en dat is 'false' nou krijg ik in de output:
ikgeloofdatikhetsnap
false
ikgeloofdatikhetsnap
false
ikgeloofdatikhetsnap
false
...

nou heb ik in de actionscript gezet:
hmenu_btn_mc1._visible = var7;

bedoel je zou denken dat ie het doet maar NIKS ervan :( snap er niks van

want als ik gewoon hard typ:
hmenu_btn_mc1._visible = false;

doet ie het natuurlijk wel.....

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
XangadiX schreef op woensdag 12 januari 2005 @ 19:35:
* XangadiX zal nooit meer uit zijn hoofd actionscript posten
* XangadiX zal nooit meer uit zijn hoofd actionscript posten
* XangadiX zal nooit meer uit zijn hoofd actionscript posten
* XangadiX zal nooit meer uit zijn hoofd actionscript posten
... |:(
mwah, als het klopt vind ik het niet erg hoor ;)
ik had het ook uit mn hoofd gedaan :P

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
Verwijderd schreef op woensdag 12 januari 2005 @ 22:14:
Beste XangadiX,

de functie werkt goed, te zien aan het output scherm...
output:
ikgeloofdatikhetsnap
ikgeloofdatikhetsnap
ikgeloofdatikhetsnap
...

nou heb ik zelf var7 toegevoegd en dat is 'false' nou krijg ik in de output:
ikgeloofdatikhetsnap
false
ikgeloofdatikhetsnap
false
ikgeloofdatikhetsnap
false
...

nou heb ik in de actionscript gezet:
hmenu_btn_mc1._visible = var7;

bedoel je zou denken dat ie het doet maar NIKS ervan :( snap er niks van

want als ik gewoon hard typ:
hmenu_btn_mc1._visible = false;

doet ie het natuurlijk wel.....
dat klopt wel want de waarde false van jouw var7 is een string, wil je er een bolean van maken dan moet je zoiets doen als:
code:
1
2
3
if (var7 == "false") {
    var7 = false;
}

Verwijderd

Topicstarter
Nou mensen...

ik heb het volgende geprobeerd:
if (var1 == "false"){
hmenu_btn_mc1._visible = false;
}
en
else if (var1 == "true"){
hmenu_btn_mc1._visible = true;
}

ook

if (var1 == "0"){
hmenu_btn_mc1._visible = false;
}
en
else if (var1 == "1"){
hmenu_btn_mc1._visible = true;
}

ook heb ik geprobeerd met de == te veranderen naar 1x =, maar hij pakt gewoon die False of true gewoon nie, ookal hernoem je deze })

heb ook geprobeerd met:

if (var1 == "false") {
var1 = false;
}

en

if (var1 = "false") {
var1 = false;
}
en dan hmenu_btn_mc1._visible = var1;

maar steeds nog niks !!!

  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

ik heb vroeger een dergelijk probleem gehad met flash in combinatie met php
uiteindelijk bleek dat de flash wat tijd nodig had voordat de php geladen was dus heb ik er een stop in verwerkt met een kleine pauze.
Hierna werkte het wel.

McFraGG de gekste !!


  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 13-05 10:26

XangadiX

trepanatie is zóó kinderachtig

RaR schreef op donderdag 13 januari 2005 @ 15:24:
ik heb vroeger een dergelijk probleem gehad met flash in combinatie met php
uiteindelijk bleek dat de flash wat tijd nodig had voordat de php geladen was dus heb ik er een stop in verwerkt met een kleine pauze.
Hierna werkte het wel.
indeed, dat is ook de reden dat ik de interval er in stopt, soms komt het voor dat ie de eerste 2x undefined teruggeeft en dan pas de variabelen, iets wat je in je uiteindelijke script moet afvangen door als laatste variabele 'loading=complete' oid op te geven

Stoer; Marduq


Verwijderd

Topicstarter
Het probleem is dus niet om de .txt uit te laden maar om van de betreffende variabelen
ofwel string om te zetten naar waarden die actionscript kan gebruiken en herkent...

ik heb op al meerdere fora deze post geplaatst en tot nu toe heeft nog niemand me een
werkend antwoord gegeven of oplossing enigszinds...

Wie O Wie zal deze knappe bol worden die dit raadsel oplost ?!?!?!

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 11-05 10:29
* McVirusS kijkt XangadiX enigszins bevreemd aan, voor het laden van textfiles hebben we tegenwoordig de LoadVars class.

Op de stage staat een button genaamd "btn".

Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var config_lv:LoadVars = new LoadVars();
config_lv.load( "config.txt" );
config_lv.onLoad = function( success:Boolean ) {
    if( success ) {
        trace( "config file loaded" );
        var button_visible = ( this.button_visible == "true" );
        var button_color = this.button_color;
        
        btn._visible = button_visible;
        var col:Color = new Color( btn );
        col.setRGB( button_color );
    } else {
        trace( "failed loading config" );
    }
}


Inhoud config.txt:
code:
1
2
&button_visible=true&
&button_color=0xFF0000&

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 13-05 10:26

XangadiX

trepanatie is zóó kinderachtig

je hebt helemaal gelijk mcViruss, maar de TS heeft moete om variabelentypen te onderscheiden, dan ga ik hem niet meteen opzadelen met keurige actionscript classes die hem waarschijnlijk het spoor helemaal bijster doen raken.

deze hele draad draait om dit
code:
1
var button_visible = ( this.button_visible == "true" );

regeltje

(niet verklappen! :X ;) )

eerst de basis, en het daarna pas onbehoorlijk ingewikkeld maken :P

offtopic:
* XangadiX denkt dat McViruss gewoon een 'knappe bol' gevonden wil worden

[ Voor 11% gewijzigd door XangadiX op 14-01-2005 01:00 ]

Stoer; Marduq


Verwijderd

Topicstarter
Om het allemaal wat concreter te laten zien staan de 2 bestanden op:

http://www.rovecon.nl/tes...p?dirpath=./Flash&order=0

hier kunnen jullie kijken wat eraan veranderd moet worden of dat er een andere fout is...

  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 20:04
Voor het gemak heb ik hier even de code gepost die in de .fla zit

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
_root.loadVariables("as.txt", "");

//function decode(code) {
//if (code = "0") {
//    code = false;
//}
//   }
setInterval(tracer, 1000)
function tracer() {
   trace(var1)
   trace(var2)
   trace(var3)
   trace(var4)
   trace(var5)
}

hmenu_btn_mc1._visible = (var1=="true") ? true : false;
hmenu_btn_mc1.tekst.textColor(var5);
hmenu_btn_mc1.tekst.text = var4;
hmenu_btn_mc2._visible  = (var2=="true") ? true : false;
hmenu_btn_mc3._visible  = (var3=="true") ? true : false;


Het probleem zit in de volgorde van uitvoeren van de bovenstaande actionscript code:
Als eerste wordt eenmalig loadVariables() en de laatste 5 regels uitgevoerd en daarna wordt elke 1000 ms de functie tracer() uitgevoerd en dus var1 t/m var 5 in het output scherm geprint.

Wat roe1v even moet doen is de loadVariables() en die 5 regels in de tracer() functie zetten, dan worden elke 1000 ms de waarden uit de textfile ingelezen en worden ook de properties van de buttons en tekstvelden gevuld.

Java:
1
hmenu_btn_mc1._visible = (var1=="true") ? true : false;

kun je korter schrijven als
Java:
1
hmenu_btn_mc1._visible = (var1=="true");

[ Voor 7% gewijzigd door Canard op 14-01-2005 08:48 ]


  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 11-05 10:29
XangadiX schreef op vrijdag 14 januari 2005 @ 00:59:
je hebt helemaal gelijk mcViruss, maar de TS heeft moete om variabelentypen te onderscheiden, dan ga ik hem niet meteen opzadelen met keurige actionscript classes die hem waarschijnlijk het spoor helemaal bijster doen raken.
Persoonlijk vind ik zo'n timeout om te testen of de variabelen zijn geladen veel onlogischer dan een onLoad functie. Dat werkt toch veel makkelijker? En als iemand het toch aan het leren is dan liever goed in plaats van achterhaald ;).
deze hele draad draait om dit
code:
1
var button_visible = ( this.button_visible == "true" );

regeltje

(niet verklappen! :X ;) )
Had ik wel even mogen toelichten inderdaad, maar goed nu mag het niet meer van jou :P.
eerst de basis, en het daarna pas onbehoorlijk ingewikkeld maken :P
Ben ik het dus niet mee eens, als je het toch moet leren dan liever goed! :)
offtopic:
* XangadiX denkt dat McViruss gewoon een 'knappe bol' gevonden wil worden
Wat ken je me toch weer goed :P.

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Ik heb een soortgelijk probleem. Ik heb het op de volgende manier opgelost:

In de movieclip waar je de actionscript gebruikt zet je een extra layer voor je actions en zet hierin this.loadVariables("blaat.txt");. Als je dan je variabelen wil aanspreken doe je dat door in je tekstbestand gebruik te maken van:

&var1=blaat
Vergeet de & niet en zorg dat var1 in kleine letters is.

Ik heb nu echter ook het volgende probleem: Mijn tekst is gemasked en dan pakt hij hem niet.

Als ik de tekst unmask doet hij het wel..

Suggesties?

My personal videoteek: -Clique-; -NMe- is een snol!


  • sanderb
  • Registratie: November 2000
  • Nu online
als je dynamic text gebruikt, en die masked, zul je het font moeten embedden. Dan doet ie het wel.

" A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. " - Douglas Noel Adams


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Ehm, en hoe werkt dat?

My personal videoteek: -Clique-; -NMe- is een snol!


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Ik heb van alles geprobeerd, maar mijn tekst wordt niet gemasked. zou iemand kunnen helpen?

My personal videoteek: -Clique-; -NMe- is een snol!

Pagina: 1