Autor |
Nachricht |
marcusm
Threadersteller
Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht:
|
Verfasst So 30.07.2006 16:18
Titel Flash :: mc per attachMovie und btn im mc beschriften |
|
|
Hallo Gemeinde,
versuche mich seit enigen Tagen an einer aus einem XML-File generierten Flash-Navigation.
PHP schreibt das XML und mein AS liest es ein, soweit so gut. Die Navi soll über maximal drei Stufen
verfügen(primäre, sekundäre und tertiäre), vorgegeben durch die XML-Knoten.
XML-File:
Code: | <?xml version="1.0" encoding="utf-8"?>
<navigation>
<item art="prim" title="FIRMA GMBH" content="pna.swf"/>
<item art="seku" title="STORY" content="story.swf"/>
<item art="seku" title="TEAM" content="team.swf"/>
<item art="tert" title="Patrick Van Well" content="van_well.swf"/>
<item art="tert" title="Andre Kraus" content="kraus.swf"/>
<item art="seku" title="PRODUKTION" content="produktion.swf"/>
<item art="seku" title="PRESSE" content="presse.swf"/>
<item art="seku" title="JOBS" content="jobs.swf"/>
<item art="seku" title="IMPRESSUM" content="impressum.swf"/>
<item art="prim" title="AIRPORTSTORES" content="airportstores.swf"/>
<item art="prim" title="RETAIL" content="retail.swf"/>
<item art="prim" title="CONSUMER" content="consumer.swf"/>
<item art="prim" title="NEWS" content="news.swf"/>
</navigation>
|
Via ActionScript lasse ich per Schleife den geparsten XML-Baum durchlaufen und unterscheide an
dieser Stelle um welche der drei Stufen es sich handelt. Bis hier hin auch kein Problem, dann lade
ich aus der Bibliothek einen von drei Movieclips für die jeweilige Navi-Stufe. In diesen drei MCs
befindet sich jeweils eine Schaltfläche.
Mein Problem ist nun folgendes, wie kann ich der Schaltfläche in den attach-MCs das Wort für die Beschriftung übergeben???
Hoffe ich habe mein Problem in verständliche Worte kleiden können?
AS-Code:
Code: | function initMenu (language) {
_global.LANG = language;
feed = new XML ();
feed.ignoreWhite = true;
feed.onLoad = function (success) {
if (success) {
buildMenu (feed.childNodes[0].childNodes[0]);
}
};
feed.load (LANG + "/navigation.xml");
}
function buildMenu(base){
var i;
while (base != undefined) {
if( base.attributes.art == "prim"){
var itm = _root.attachMovie ("menuItem_prim", "menuItem_prim" + d++, d, {_x:10, _y:36 + 20 * i});
itm.button.text = base.attributes.title;
itm.content = base.attributes.content;
itm.btn_navi_prim.onPress =function(){
loadContent( this.content );
};
}
else if( base.attributes.art == "seku" ){
var itm = _root.attachMovie ("menuItem_seku", "menuItem_seku" + d++, d, {_x:30, _y:36 + 20 * i});
itm.title.text = base.attributes.title;
itm.content = base.attributes.content;
itm.btn_navi_seku.onPress = function(){
loadContent( this.content );
};
}
else {
var itm = _root.attachMovie ("menuItem_tert", "menuItem_tert" + d++, d, {_x:50, _y:36 + 20 * i});
itm.title.text = base.attributes.title;
itm.content = base.attributes.content;
itm.btn_navi_tert.onPress = function(){
loadContent( this.content );
};
}
base = base.nextSibling;
i++;
}
delete feed;
}
function loadContent (content) {
trace (LANG + "/" + content + " wird geladen");
}
btn_de.onPress = function () {
initMenu ("de");
};
btn_en.onPress = function () {
initMenu ("en");
};
initMenu ("de"); |
Zur Erklärung noch folgendes, die MovieClips haben folgende Namen in der Bibliothek:
menuItem_prim, menuItem_seku und menuItem_tert
Die Schaltflächen in den MCs heißen:
btn_navi_prim, btn_navi_seku und btn_navi_tert
Ich hoffe es kann mir jemand helfen?
Dank Euch...
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst So 30.07.2006 22:10
Titel
|
|
|
Du machst Dir das alles ein wenig schwer find ich.
Probier mal folgenden Script aus:
Code: |
XML.prototype.ignoreWhite = true;
var feed:XML = new XML()
feed.onLoad = function(success:Boolean){
if(success){
for(var i:Number = 0; i < this.firstChild.childNodes.length; i++){
parseNode(this.firstChild.childNodes[i], i)
}
}
}
var loadXML:Function = function(_lang_){
feed.load(_lang_ + "/navigation.xml");
}
var parseNode:Function = function(node:XMLNode, id:Number){
var Type:String = node.attributes.art
switch(Type){
case "prim":
var PosX:Number = 10;
break;
case "seku":
var PosX:Number = 30;
break;
case "tert":
var PosX:Number = 50;
break;
}
var PosY:Number = 36 + 20 * id
_root.attachMovie("menuItem_" + Type, "menuItem_" + Type + id, 123 + id, {_x: PosX, _y: PosY});
_root["menuItem_" + Type + id].Name_txt.text = node.attributes.title;
_root["menuItem_" + Type + id].Content_str = node.attributes.content;
_root["menuItem_" + Type + id].onRelease = function(){
loadContent(this.Content_str);
}
}
var loadContent:Function = function(Kind:String){
trace (Kind + " wird geladen");
}
loadXML("en");
|
Also für die Sprache die Knöppe hab ich jetzt mal weggelassen. Weil Du solltest Dir vielleich überlegen, die XML-Datei zu überarbeiten. Also ist meine Meinnung. So in Richtung:
Code: |
<item art="prim" content="pna.swf"/>
<language type="en">FIRMA LTD.</language>
<language type="de">FIRMA GMBH</language>
</item>
|
Weil sonst lädst Du Infos doppelt und so hast Du alles direkt zur Hand.
Ach ja, Datei kannst Du dich auch unter http://www.flaming-art.com/MGI/navi.rar runterladen.
Gruß,
Kobi
|
|
|
|
|
Anzeige
|
|
|
marcusm
Threadersteller
Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht:
|
Verfasst So 30.07.2006 22:19
Titel
|
|
|
Hi Kobi,
dank Dir für die Mühe! Werde das morgen früh direkt mal in die Datei basteln und mich gerne
gegebenfalls noch mal an Dich wenden...
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst So 30.07.2006 22:30
Titel
|
|
|
Kein Ding. Schau morgen immer mal wieder hier rein
|
|
|
|
|
marcusm
Threadersteller
Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht:
|
Verfasst So 30.07.2006 22:48
Titel
|
|
|
War doch noch neugierig...
Mmmh soweit war ich auch schon, nur MCs zu laden und dort zu beschriften.
Ich brauche aber umbedingt für die Navi diese Rollover-Effekte und in der Kombination
mit der "switchenden" Typo gehts doch nur via Schaltfläche im MC oder???
Hier mal mein Ansatz mit Schaltfläche aber mit dem Problem der fehlenden Beschriftung:
Klick mich...
Übrigens, Grüße aus Essen an Essen
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst So 30.07.2006 22:53
Titel
|
|
|
Der Link is tot . Check mal damit ich seh was Du brauchst
Nein für ein RollOver brauchst Du keinen Button. Buttons als Klasse saugen. Ich weiss auch nicht warum es die noch gibt.
Gruß aus Borbeck
|
|
|
|
|
|
|
|
Ähnliche Themen |
[Flash] Problem mit attachMovie-Schleife
.attachMovie problem
SWF übergreifendes attachMovie
attachmovie problemchen
isolierband beschriften
PS CS5 Gegenstände Beschriften
|
|