Avatar billede goldenshower Nybegynder
27. marts 2006 - 09:08 Der er 1 løsning

FLASH med XML menu

hej jeg har hentet en XML styrret menu (som virker fint efter en ordentligt customisering) men jeg vil gerne tilføje noget funktionalitet. som er over mit hoved.

Hvordan er det muligt at:

1: tilføje kode i XML'en som fungerer ligesom root_gotoAndStop("lable1"); ville gøre i flash. altså at hoppe fra frame eller framelable i flash via XML indputtet.

min flash skal fungere over 5 frames (intro og 4 munupunkter)
så klikket på menuen skal hoppe flash filmen til en given frame
(og gerne hvis der muligt lade externe swf ind, ikke super nødvendigt dog da jeg kan gøre det med frameaction i flash jo.

2: linket skal fungere som an almindelig getURL i flash (kan egentligt også klares med en framaction hvis spørgsmål 1 er muligt) men det ville være fedt hvis man også kunne det fra XML'en. altså en open: _blank html side.

lad mig med det samme sige jeg IKKE er den store forstand på XML
og mit AS er midelmådigt. (mildt sagt) :-)

og her er koden så:

FRAME1 kode I flash:

import it.sephiroth.TreeDnd

// set some style to the component
var theTree:mx.controls.Tree = dnd.getTree();
theTree.setStyle('fontFamily','font1')
theTree.setStyle('fontSize',8);
theTree.setStyle('embedFonts', true);
theTree.setStyle('backgroundColor','0xFFFFFF');
theTree.setStyle('rollOverColor','0xE9E9F3');
theTree.setStyle('selectionColor','0xBCCCDF');
theTree.setStyle('textSelectedColor','0xFFFFFF');
theTree.setStyle('openDuration', 100);
theTree.setStyle('selectionDuration',0);
theTree.setStyle("disclosureClosedIcon", "iconPlus")
theTree.setStyle ("disclosureOpenIcon","iconMinus");
dnd.setStyle("separatorColor", '0xFF0000');
theTree.rowHeight = 20;
theTree.vScrollPolicy = "auto"
theTree.iconFunction = function(item){
    if( this.getIsBranch(item)){
        return "folder_icon"
    } else {
        return "node_icon"
    }
}

// define event listener
var dndList:Object = new Object();
dndList.double_click = function(evt:Object)
{
    testo.text = evt.type
}
dndList.drag_start = function(evt:Object)
{
    testo.text = evt.type
}
dndList.drag_fail = function(evt:Object)
{
    testo.text = evt.type
}
dndList.drag_complete = function(evt:Object)
{
    trace('drag complete')
    testo.text = evt.type
}
dndList.drag_target = function(evt:Object)
{
    trace('drag_target')
    evt.targetMc.text = "Dropped: " + evt.sourceNode
}
// ***********************************
// set the event listeners
// ***********************************
this.dnd.addEventListener('double_click', dndList);
this.dnd.addEventListener('drag_start', dndList);
this.dnd.addEventListener('drag_fail', dndList);
this.dnd.addEventListener('drag_complete', dndList);
this.dnd.addEventListener('drag_target', dndList);        // when an item is dropped over a defined target

this.dnd.dropTarget = [testo]    // defined a drop target


/**
you can define also custom drag and drop functions

this.dnd.dragFunction = function(item:XMLNode){
    // return if item can be dragged
    return true;
}


this.dnd.dropFunction = function(source:XMLNode, target:XMLNode){
    // return if dragged item can be dropped into the target item
    return true
}

**/



// ***********************************
// Now load an XML into Tree component
// ***********************************
var _xml:XML = new XML();
_xml.ignoreWhite = true
_xml.onLoad = function(){
    dnd.getTree().dataProvider = this.firstChild
}
_xml.load("example.xml");




FRAME1 kode (andet lag) I Flash:

import it.sephiroth.TreeDnd

var check_listener:Object = new Object();
check_listener.click = function(evt:Object){
    var data:String = evt.target.label
    var obj_string:Number = 0
    if( data == 'DEFAULT' or data == 'DENYALL')
    {
        for(var a = 0; a < 6; a++)
        {
            if( evt.target._parent['cb_' + a] != evt.target)
            {
                evt.target._parent['cb_' + a].selected = false
            }
        }
    } else {
        evt.target._parent.cb_0.selected = false
        evt.target._parent.cb_1.selected = false
    }
    for(var a = 0; a < 6; a++){
        if( evt.target._parent['cb_' + a].selected == true){
            obj_string |= TreeDnd[evt.target._parent['cb_' + a].label]
        }
    }
    trace(obj_string)
    evt.target._parent.dnd.dragRules = obj_string
    trace( evt.target._parent.dnd.dragRules )
}

this.cb_0.addEventListener('click', check_listener);
this.cb_1.addEventListener('click', check_listener);
this.cb_2.addEventListener('click', check_listener);
this.cb_3.addEventListener('click', check_listener);
this.cb_4.addEventListener('click', check_listener);
this.cb_5.addEventListener('click', check_listener);


for(var a = 0;a < 6; a++){
    this['cb_' + a].setStyle('fontFamily','font1')
    this['cb_' + a].setStyle('fontSize',8);
    this['cb_' + a].setStyle('embedFonts', true);
}

testo.setStyle('fontFamily','font1')
testo.setStyle('fontSize',8);
testo.setStyle('embedFonts', true);

-----------------------------------------
Og her er XML koden:
<?xml version="1.0" encoding="iso-8859-1"?>
<node data="id=1" label="Welcome at the CODERLAB website" icon="folderYellowClosed">
    <node isOpen="" data="id=233" label="HOVEDMENU1">
        <node data="id=245" label="OUTSOURCING TIL ØSTEUROPA"/>
        <node data="id=245" label="SUB1_1"/>
        <node data="id=245" label="SUB1_2"/>
        <node data="id=245" label="SUB1_3"/>
        <node data="id=245" label="SUB1_4"/>
</node>
        <node isOpen="" data="id=305" label="HOVEDMENU2">
            <node data="id=621" label="SUB2_1"/>
            <node data="id=625" label="CSUB2_2"/>
            <node data="id=621" label="SUB2_3"/>
            <node data="id=625" label="SUB2_4"/>
            <node data="id=625" label="SUB2_5"/>
            <node data="id=621" label="SUB2_6"/>
            <node data="id=625" label="SUB2_7"/>
</node>
        <node isOpen="" data="id=325" label="HOVEDMENU3">
            <node data="id=329" label="SUB3_1"/>
            <node data="id=333" label="SUB3_2"/>
            <node data="id=337" label="SUB3_3"/>
        </node>
        <node isOpen="" data="id=369" label="HOVEDMENU4">
            <node data="id=373" label="SUB4_1"/>
            <node data="id=377" label="SUB4_1"/>
</node>
------------------------

please please :-)
Avatar billede goldenshower Nybegynder
05. april 2006 - 08:44 #1
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester