- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- XML e HTML <tag>
-
Ciao Enzo,
scusa ma non ho il tempo per guardare il files.Comunque il comando per abilitare un campo di testo a formattare da html è:
my_txt.html=true;
Questi sono i tags built-in supportati dalla versione 8 di Flash:
- Anchor tag
- Bold tag
- Break tag
- Font tag
- Image tag
- Italic tag
- List item tag
- Paragraph tag
- Span tag
- Text format tag
- Underline tagSe ne vuoi aggiungere degli altri, devi lavorare con Flash ed i css in questo modo:
http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001459.html
-
ok...
Non a funsionato forse non specificato bene nella mia domanda quello che voglio ottenere...
Io ho un file xml dove introduco dei valori a delle variabili in flash, adesso una di queste ha il comando che un campo di testo diventa un bottone associato ad un link che riceve le informazioni da questo file xml.
Quello che io voglio fare e': annulare questo tipo di codice e aggiungere un semplice "my_txt.html=true;" a questo campo di testo e dargli delle informazioni con tag HTML a questo ultimo...
Forse e meglio che posto qui il codice :_global.Menu = function(data_file, ref) { // Set the menu reference this._p = ref; // Read the menu info from the xml file this.XmlData = new XML(); this.XmlData.ignoreWhite = true; this.XmlData._p = this; this.XmlData.load(data_file); this.XmlData.onLoad = function(ok) { if (ok) { this._p.SetVariables(); } }; delete ref; delete data_file; }; // Parse the information loaded Menu.prototype.SetVariables = function() { // Set the vars readed from the xml file this.Root = this.XmlData.childNodes; this.Titles = new Array(); this.Links = new Array(); this.Tg = new Array(); this.Descriptions = new Array(); for (i=0; i<this.Root.length; i++) { if (this.Root*.nodeName.toUpperCase() == "MENU") { this.Nodes = this.Root*.childNodes; for (k=0; k<this.Nodes.length; k++) { this.Item++; this.Titles.push(this.Nodes[k].attributes.id.toString()); this.Links.push(this.Nodes[k].attributes.page.toString()); this.Tg.push(this.Nodes[k].attributes.tg.toString()); this.Descriptions.push(this.Nodes[k].childNodes.toString()); } } } delete this.Root; delete this.Nodes; delete this.XmlData; this.DrawMenu(); }; // Construct the UI Menu.prototype.DrawMenu = function() { // Use vars and arrays to contruct the menu for (i=0; i<this.Item; i++) { this._p.attachMovie("ITEM", "Item" add i, i); this._mc = eval(this._p add ".Item" add i); this._mc._x = 0; this._mc._y = 174+21*i; this._mc.Title.label.htmlText = this.Titles*.toUpperCase(); this._mc.Graphic.Slide.label.htmlText = this.Titles*.toUpperCase(); this._mc.Link.Description.htmlText = "» " add this.Descriptions*; this._mc.Link.$link = this.Links*; this._mc.Link.$tg = this.Tg*; this.format = new TextFormat(); this.format.align = "right"; this._mc.Title.label.setTextFormat(this.format); this._mc._id = i; delete this.format; } this.SetAction(); this.SetActive(0); }; // Set the action for the menu tabs Menu.prototype.SetAction = function() { for (i in this.Titles) { this._mc = eval(this._p add ".Item" add i); this._mc._ref = this; this._mc.$active = (i == 0) ? true : false; this._mc.Ico.gotoAndPlay((i == 0) ? "SlideIn" : "SlideOut"); this._mc.onRelease = function() { if (this.$active == false) { this._ref.SetActive(this._id); } }; this._mc.Link.onMouseUp = function () { if (this.hitTest(_xmouse, _ymouse, true) && (this._parent.$active == true)) { getURL(this.$Link, this.$Tg); } } } }; // Set the visualization options Menu.prototype.SetActive = function(id) { for (i in this.Titles) { this._mc = eval(this._p add ".Item" add i); // Move Title And Graphics of the Mc this._mc.Ico.gotoAndPlay((id == i) ? "SlideIn" : (this._mc._currentframe != 1 && this._mc.$active == true) ? "SlideOut" : null); this._mc.gotoAndPlay((id == i) ? "UnActive" : (this._mc._currentframe == 1) ? "Stop" : (this._mc.$active == true) ? "Active" : null); this._mc.$active = (id == i) ? true : (this._mc._currentframe == 1) ? this._mc.$active : false; // Move the tabs (with easing) in the correct position if (id<i) { // Move top to bottom if (this._mc.act != "GoToBt") { this._mc.__t__ = 0; this._mc.act = "GoToBt"; delete this._mc.onEnterFrame; this._mc.onEnterFrame = function() { if (this._y == (21*this._id+174)) { delete this.onEnterFrame; this.act = ""; delete this._mc._x0; delete this._mc._y0; delete this._mc._x1; delete this._mc._y1; delete this._mc.spd; delete this._mc.__t__; } this.moveFromTo(this._x, this._y, this._x, (21*this._id+174), 0.02); }; } } else if (id>=i) { // Move bottom to top if (this._mc.act != "GoToTp") { this._mc.__t__ = 0; this._mc.act = "GoToTp"; delete this._mc.onEnterFrame; this._mc.onEnterFrame = function() { if (this._y == 21*this._id) { delete this.onEnterFrame; this.act = ""; delete this._mc._x0; delete this._mc._y0; delete this._mc._x1; delete this._mc._y1; delete this._mc.spd; delete this._mc.__t__; } this.moveFromTo(this._x, this._y, this._x, 21*this._id, 0.02); }; } } } delete id; }; // Move Clips (written by [email protected] ) MovieClip.prototype.moveFromTo = function(xFrom, yFrom, xTo, yTo, speed) { this.x0 = xFrom == undefined ? this._x : xFrom; this.y0 = yFrom == undefined ? this._y : yFrom; this.x1 = xTo == undefined ? xFrom : xTo; this.y1 = yTo == undefined ? yFrom : yTo; this.spd = speed == undefined || speed>1 ? 0.0125 : speed; this.__t__ += this.spd; this._x = Math.round(this.x0+(this.x1-this.x0)*this.__t__); this._y = Math.round(this.y0+(this.y1-this.y0)*this.__t__); };
Ecco nella parte di codice dove dice ```
this._mc.Link.Description.htmlTextecco e li che voglio che riceva i tag HTML cosi da poter scrivere dei semplici ``` <a href="www.esempio.com" target="_blank">Link</a> ``` ovviamente i link saranno un po di + tipo link 1 link 2 link 3 e ogni uno con i proprii link associati dal {a href <tag>} nel file xml. Spero che mi puoi aiutare. Grazie anticipatamente...
-
[LEFT]this._mc.Link.Description.html=true; non va bene ?[/LEFT]
-
@Flep said:
[LEFT]this._mc.Link.Description.html=true; non va bene ?[/LEFT]
Prima di tutto scusa per il ritardo alle risposte ma non so perche il systema di avviso nella mia posta non funsiona anche quando ho abilitato l'opzione AVVISO.this._mc.Link.Description.html=true;
Ho gia' provato ma niente... quando immetto quella stringa non so perche non mi carica piu' i dati di quel nodo dal file xml (tutti tranne quello) forse e dovuto al codice ```
addAltre soluzioni possibili??? Grazie per il tuo tempo...
-
Mi fai vedere l'xml ?
-
@Flep said:
Mi fai vedere l'xml ?
OK se guardi il file zip c'e' tutto li ma cmq se vuoi lo posto...<?xml version="1.0" ?> - <MENU> <ITEM id="home" page="pagina1.html" tg="_blank">Pagina principale ...</ITEM> <ITEM id="works" page="pagina2.html" tg="_blank">I miei lavori, esperimenti e progetti</ITEM> <ITEM id="curriculum" page="pagina3.html" tg="_blank">Il mio curriculum</ITEM> <ITEM id="friends" page="pagina4.html" tg="_blank">Pagina dedicata agli amici</ITEM> <ITEM id="credits" page="pagina5.html" tg="_blank">Onore e gloria a ...</ITEM> <ITEM id="contact" page="pagina6.html" tg="_blank">Come contattarmi ...</ITEM> </MENU>
invece quello che voglio fare e cosi
<?xml version="1.0" ?> - <MENU> <ITEM id="home"> <a href="www.link1.com" target="_blank">link1</a><br> <a href="www.link2.com" target="_blank">link2</a><br> <a href="www.link3.com" target="_blank">link3</a><br> <a href="www.link4.com" target="_blank">link4</a></ITEM> <ITEM id="works" page="pagina2.html" tg="_blank">I miei lavori, esperimenti e progetti</ITEM> <ITEM id="curriculum" page="pagina3.html" tg="_blank">Il mio curriculum</ITEM> <ITEM id="friends" page="pagina4.html" tg="_blank">Pagina dedicata agli amici</ITEM> <ITEM id="credits" page="pagina5.html" tg="_blank">Onore e gloria a ...</ITEM> <ITEM id="contact" page="pagina6.html" tg="_blank">Come contattarmi ...</ITEM> </MENU>
-
Il problema è che <a href , viene letto come 'href' attributo XML.
Per ovviare, potresti fare in questo modo:
togli i tags html dall'xml, poi crei 2 attributi XML per ogni Child.
In questo modo:- <MENU> <ITEM id="home" url="www.link1.com" text="testo del link"> </MENU>
A questo punto ti crei 3 arrays , che contengono rispettivamente, uno gli id, uno gli url e l'altro i testi dei link.
Leggi l'xml e fai un push di ogni attributo nell'appropriato array.
Adesso hai tutti i dati immagazzinati e con actionscript te li gestisci come meglio credi.
-
Lo immaginavo...
Devo scombussolare tutto il codice d'acapo...
Ti chiedo un ultimo favore se puoi ... potresti riportare un esempio ("Molto pratico") qui nel post "mi sarebbe di grande aiuto".
Anche solo un link sia del codice AS che del xml...
Tipo dove ho messo i link nel xml tu mi porti un esempio come ottenere apposto di 1 link 2 link e poi me la sbrigo io...Grazie anticipatamente.
-
XML:
<?xml version="1.0" encoding="UTF-8"?> <MENU> <ITEM id="home" url="www.link1.com" text="testo del link"></ITEM> <ITEM id="gallery" url="www.link2.com" text="testo2 del link"></ITEM> <ITEM id="portfolio" url="www.link3.com" text="testo3 del link"></ITEM> <ITEM id="contacts" url="www.link4.com" text="testo4 del link"></ITEM> <ITEM id="visit us" url="www.link5.com" text="testo5 del link"></ITEM> </MENU>
actionscript:
var id_array:Array=new Array(); var url_array:Array=new Array(); var text_array:Array=new Array(); var file_xml:XML=new XML(); file_xml.ignoreWhite=true; file_xml.onLoad=function(yes:Boolean):Void { if(yes) { var n:Number=this.firstChild.childNodes.length; for(var i:Number=0;i<n;i++) { id_array.push(this.firstChild.childNodes*.attributes['id']); url_array.push(this.firstChild.childNodes*.attributes['url']); text_array.push(this.firstChild.childNodes*.attributes['text']); } trace(id_array); trace(url_array); trace(text_array); } else trace('XML error!'); } file_xml.load('test.xml');
-
OK...ho capito quello che vuoi dire con l'esempio ma se guardi bene i file e il codice che ho postato non e' che sia tanto differente di quello che hai postato adesso tu...!!!
Adesso provo a spiegarmi cosi...Come faccio a ottenere un "Nodo Attributo" in XML senza cancellare quello che ho adesso che e' "MENU".
Mi spiego meglio.
Se io scrivo in action script :
var id_array:Array=new Array(); var url_array:Array=new Array(); var text_array:Array=new Array(); var file_xml:XML=new XML(); file_xml.ignoreWhite=true; file_xml.onLoad=function(yes:Boolean):Void { if(yes) { var n:Number=this.firstChild.childNodes.length; for(var i:Number=0;i<n;i++) { id_array.push(this.firstChild.childNodes*.attributes['id']); url_array.push(this.firstChild.childNodes*.attributes['url']); text_array.push(this.firstChild.childNodes*.attributes['text']); } trace(id_array); trace(url_array); trace(text_array); } else trace('XML error!'); } file_xml.load('test.xml');
in XML mi trovo a scrivere :
<MENU> <ITEM id="home" url="www.link1.com" text="testo del link"></ITEM> <ITEM id="gallery" url="www.link2.com" text="testo2 del link"></ITEM> <ITEM id="portfolio" url="www.link3.com" text="testo3 del link"></ITEM> <ITEM id="contacts" url="www.link4.com" text="testo4 del link"></ITEM> <ITEM id="visit us" url="www.link5.com" text="testo5 del link"></ITEM> </MENU>
Adesso se io vorrei qualcosa di tipo cosi :
<?xml version="1.0" encoding="UTF-8"?> //inizio primo settore del menu <MENU1> <ITEM id="link1" url="www.link1.com" text="testo del link"></ITEM> <ITEM id="link2" url="www.link2.com" text="testo2 del link"></ITEM> <ITEM id="link3" url="www.link3.com" text="testo3 del link"></ITEM> <ITEM id="link4" url="www.link4.com" text="testo4 del link"></ITEM> <ITEM id="link5" url="www.link5.com" text="testo5 del link"></ITEM> </MENU1> //fine primo settore menu // inizio secondo settore menu <MENU2> <ITEM id="link1" url="www.link1.com" text="testo del link"></ITEM> <ITEM id="link2" url="www.link2.com" text="testo2 del link"></ITEM> <ITEM id="link3" url="www.link3.com" text="testo3 del link"></ITEM> <ITEM id="link4" url="www.link4.com" text="testo4 del link"></ITEM> <ITEM id="link5" url="www.link5.com" text="testo5 del link"></ITEM> </MENU2> //fine secondo settore menu //ecc...
Dando comunque i dati alle stesse variabili e alle stesse caselle di testo ma cambiando ad ogni (settore del menu).
CMQ mi sarebbe moolto di aiuto se guarderesti il file .zip che ho postato e apri il file .swf ti accorgi che c'e' un menu quadrato con 3 campi di testo:
1 il titolo
2 titolo temporaneo della riga (che poi diventa il titolo principale n1)
3 descrizione (qui voglio aggiungere i miei link con l'XML)Per come' adesso descritto il menu funziona cosi che il link va a coprire l'intero movieclip chiamato Link con la funzione ```
this._mc.Link.onMouseUp = function () {
if (this.hitTest(_xmouse, _ymouse, true) && (this._parent.$active == true)) {
getURL(this.$Link, this.$Tg);
}all'interno a un campo txt dinamico che accetta la descrizione dal file XML infatti l'instanza e Description. Scusa forse faccio confusione ma penso che per te sarebbe facile riuscire a risolvere questo problema solo che se non ci intendiamo facciamo solo confusione. Perfavore fammi sapere se hai capito cosa voglio fare con questo menu.
-
Ok, con l'xml che hai scritto tu,cioè questo:
[LEFT]<?xml version="1.0" encoding="UTF-8"?> //inizio primo settore del menu <MENU1> <ITEM id="link1" url="www.link1.com" text="testo del link"></ITEM> <ITEM id="link2" url="www.link2.com" text="testo2 del link"></ITEM> <ITEM id="link3" url="www.link3.com" text="testo3 del link"></ITEM> <ITEM id="link4" url="www.link4.com" text="testo4 del link"></ITEM> <ITEM id="link5" url="www.link5.com" text="testo5 del link"></ITEM> </MENU1> //fine primo settore menu // inizio secondo settore menu <MENU2> <ITEM id="link1" url="www.link1.com" text="testo del link"></ITEM> <ITEM id="link2" url="www.link2.com" text="testo2 del link"></ITEM> <ITEM id="link3" url="www.link3.com" text="testo3 del link"></ITEM> <ITEM id="link4" url="www.link4.com" text="testo4 del link"></ITEM> <ITEM id="link5" url="www.link5.com" text="testo5 del link"></ITEM> </MENU2> //fine secondo settore menu //ecc...[/LEFT]
devi usare 2 cicli innestati e degli arrays bidimensionali.
Con actionscript lo lavori in questo modo:
var file_xml:XML=new XML(); file_xml.ignoreWhite=true; file_xml.onLoad=function(yes:Boolean):Void { if(yes) { var n:Number=this.childNodes.length; for(var i:Number=0;i<n;i++) { trace(this.childNodes*.childNodes.length); var s:Number=this.childNodes*.childNodes.length; for(var j:Number=0;j<s;j++) { trace(this.childNodes*.childNodes[j].attributes['url']); } } } else trace('XML error!'); } file_xml.load('test.xml');
-
Scusami se mi sto facendo ripetitivo ma io credo che stiamo facendo confusione.
Se vai qui vedi il menu (cosi come' adesso senza modifiche)
http://apachepc.com/menu.swfAdesso se guardi bene il menu dove ce scritto Submenu 1 voglio inserire dei COLLEGAMENTI LINKS del tipo :
Menu Hot Buys
Submenu 1"link del testo=www.submenulink1.com target=_blank"
Submenu 2"link del testo=www.submenulink2.com target=_blank"
Submenu 3"link del testo=www.submenulink3.com target=_blank"
Submenu 4"link del testo=www.submenulink4.com target=_blank"Questo avviene per ogni voce del menu tipo
Menu Hardware
Submenu 1"link del testo=www.submenulink1.com target=_blank"
Submenu 2"link del testo=www.submenulink2.com target=_blank"
Submenu 3"link del testo=www.submenulink3.com target=_blank"
Submenu 4"link del testo=www.submenulink4.com target=_blank"Eccc....cc....ecc...con gli altri menu.
Pensi che mi sono spiegato bene questa volta???
Pensi che posso fare una cosa del genere???
Pensi che mi potresti aiutare in un modo molto pratico???PS: scusami se sono ripetitivo e scusa per il tempo che ti faccio perdere ma penso che tu potresti "semplicemente" trovare il modo per far cio' che ti sto chiedendo,,, se riusciremo a capirci...
Cmq per qualsiasi chiarezza fai riferimento al codice riportato nel post o nel file .zip
-
Ciao Enzo,
scusa ma io son sempre più convinto che tu non ascolti e non studi il codice che ti ho dato.
Io non sono quì per creare le applicazioni di chi ne ha bisogno. Siete tanti e cerco di fare del mio meglio.
Io ti do degli input e penso di avertene dati parecchi.
-
OK Flep hai ragione...
Ma io ho provato e riprovato il codice che mi hai dato tu , ma non riesco ad ottenere quello che io voglio.
Il codice che ho postato non lho fatto io, perquesto non e facile modificarlo , perche quando provo a modificare qualcosa non mi funsiona un altra.Io pensavo che per uno come te che mangia pane e action script sarebbe stato un tantino piu' facile capire dov'e il problema e come risolverlo.
Cmq.
Se puoi almeno rivedere il mio codice e cercare di darmi una soluzione concreta "se puoi"...
Tipo :
esempio:"Se vuoi ottenere piu' link in quel riquadro che parlavi tu devi usare gli array , che li ottieni cosithis.Descriptions=New Array(); for(var j:Number=0;j<s;j++)
e poi se vuoi inserire dati dal'XML prova cosi...ecc.ecc.ecc...
Ti ringrazio comunque per quello che mi hai suggerito e per quello che forse mi suggerirai.
-
...ma non riesco ad ottenere quello che io voglio.
Io pensavo che per uno come te che mangia pane e action script sarebbe stato un tantino piu' facile capire dov'e il problema e come risolverlo.
I forum sono per studiare, discutere ed approfondire aspetti generali.
Anche per dare consigli ovviamente e, nel possibile, piccoli aiuti.Tu Enzo Slash stai chiedendo un servizio.
Flep è un professionista e penso anch'io che, per uno come lui, analizzando il tuo caso e lavorandoci su una giornata, sia possibile trovare un'ottima ed adeguata soluzione.
Ma la collaborazione che stà prestando al ForumGT è relativa alla moderazione, non al fornire servizi gratuiti agli utenti, e mi sembra che nel tuo caso specifico [relativo a te solo, non al forum nell'insieme] abbia già fatto veramente ben oltre del suo meglio.
Qualsiasi lavoro tu faccia, dubito che tu lo offra gratuitamente; se è di una prestazione professionale che necessiti, meglio contattare in pvt qualcuno dei tanti tecnici esperti di questo forum.
Compreso il bravo Flep.
-
Hey Mamilu.
Si ho capito quello che dite tu e flep.
Non voglio assolutamente disturbare nessuno ne tantomeno far perdere giornate intere a nessuno.
L'unica cosa che chiedevo e' che se uno come flep o un tecnico che conosce bene il codice Actionscript si fermasse solo per un minuto (60 secondi) non di piu' per scrivere 2 righe semplici in modo che un (Ignorante) come me riuscirebbe un tantino meglio a capire...
Forse riuscirei nel mio intendo e creare dei semplici link nel mio menu.E in tutto rispetto e con la pretesa che non volgia offendere nessuno.
Penso proprio che flep ne tanto meno un tectnico del forum abbiano guardato i file che ho postato neanche per un istante., e diciamo anche dovuto a quello che non smettevo di postare risposta dicendo ("non ho capito , come posso fare, ecc...ecc...").Cmq ritornando alla verita' e che io sono ancora fermo allo stesso problema di prima o forse un po peggio visto che mi sono confuso un bel po con i codici di flep visto che li ho usati e poi fatto dei casini. (questa non e colpa di flep assolutamente 'voglio precisare' e colpa mia che non so usare bene il codice).
Cmq grazie a tutti e se ce ancora qualcuno che potrebbe in qualche modo riuscire a darmi un consiglio (Pratico) vi sarei molto grato.
Ciao.
-
OK scusate se insisto ma credo di essere vicino alla soluzione del mio problema.
Io ho un actionscript cosi :
Menu.prototype.SetVariables = function() { // Set the vars readed from the xml file this.Root = this.XmlData.childNodes; this.Titles = new Array(); this.Links = new Array(); this.Tg = new Array(); this.Descriptions = new Array(); for (i=0; i<this.Root.length; i++) { if (this.Root*.nodeName.toUpperCase() == "MENU") { this.Nodes = this.Root*.childNodes; for (k=0; k<this.Nodes.length; k++) { this.Item++; this.Titles.push(this.Nodes[k].attributes.id.toString()); this.Links.push(this.Nodes[k].attributes.page.toString()); this.Tg.push(this.Nodes[k].attributes.tg.toString()); this.Descriptions.push(this.Nodes[k].childNodes.toString()); } } }
L'actionscript usato e vecchio 1.0.
E un XML cosi :<MENU> <ITEM id="home" page="pagina1.html" tg="_blank">ccc</ITEM> <ITEM id="works" page="pagina2.html" tg="_blank">I miei lavori, esperimenti e progetti</ITEM> <ITEM id="curriculum" page="pagina3.html" tg="_blank">Il mio curriculum</ITEM> <ITEM id="friends" page="pagina4.html" tg="_blank">Pagina dedicata agli amici</ITEM> <ITEM id="credits" page="pagina5.html" tg="_blank">Onore e gloria a ...</ITEM> <ITEM id="contact" page="pagina6.html" tg="_blank">Come contattarmi ...</ITEM> </MENU>
Ma voglio fare cosi :
<MENUS> <Menu> <ITEM id="home" page="pagina1.html" tg="_blank">pagina1 submenu</ITEM> <ITEM id="works" page="pagina2.html" tg="_blank">pagina2 submenu</ITEM> <ITEM id="curriculum" page="pagina3.html" tg="_blank">pagina3 submenu</ITEM> <ITEM id="friends" page="pagina4.html" tg="_blank">pagina4 submenu</ITEM> </Menu> <Menu> <ITEM id="home" page="pagina1.html" tg="_blank">pagina1 submenu</ITEM> <ITEM id="works" page="pagina2.html" tg="_blank">pagina2 submenu</ITEM> <ITEM id="curriculum" page="pagina3.html" tg="_blank">pagina3 submenu</ITEM> <ITEM id="friends" page="pagina4.html" tg="_blank">pagina4 submenu</ITEM> </Menu> </MENUS>
cosa dovrei cambiare nel mio actionscript?
Dai lo so che ho gia' chiesto troppo ma vorrei risolvere questo incubo che mi tormenta da settimane.Grazie.
-
Volevo solo far sapere che sono cmq riuscito nel mio intendo...
Adesso il mio menu funziona a dovere...Curiosity?Click[url=http://apachepc.com]here
Grazie per tutto l'aiuto che mi avete dato e non...
Un speciale saluto a flep e mamilu.Grazie ragazzi...