Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-05-2007, 18:42   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 2
dynamischen text aus xml datei faden

also, da ich mittlerweile verzweifle, wende ich mich an's forum.

ich habe eine xml datei, die folgenden aufbau hat:

HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<words>
	<word>
		<title>title 1</title>
		<text>text 1</text>
	</word>
	<word>
		<title>title 2</title>
		<text>text 2</text>
	</word>
</words>
das einlesen und ausgeben auf dem bildschirm klappt auch wunderbar, nur sollen die einzelnen texte ineinander übergehen. das heißt ein text soll einfaden und wenn dieser ausfadet, soll der nächste wieder einfaden - so dass das alles schön immer ineinander übergeht. dazu habe ich zwei movieclips erstellt, die jeweils zwei dynamische textfelder enthalten. mein actionscript dazu sieht so aus.

PHP-Code:
onClipEvent (load) {
    
_root.texte_mc1.getNextHighestDepth();
    
_root.texte_mc2.getNextHighestDepth();

    
preload = new MovieClipLoader();
    
    
textArray = new Array();
    
my_xml = new XML();
    
my_xml.ignoreWhite true;
    
my_xml.load("meineDatei.xml");
    
my_xml.onLoad = function(success) {
        if (
success) {
            
temp = new Array();            
            for (var 
0i<this.firstChild.childNodes.lengthi++) {
                for (var 
0j<this.firstChild.firstChild.childNodes.lengthj++) {
                    
temp[j] = this.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;
                }
                
textArray_l this.firstChild.childNodes.length;
                
arrayText = new texte(temp[0],temp[1]);
                
textArray.push(arrayText);
            }
        }
        
load_txt();
    };
    
    function 
texte(headline,subtext) {
        
this.headline headline;
        
this.subtext subtext;
    }
    
    function 
load_txt() {
        if (
delay) {
            
clearInterval(delay);
        }
        
_root.mc1.swapDepths(_root.mc2);
        var 
Math.floor(Math.random()*textArray_l);
        
_root.mc1.xmlTitel.htmlText textArray[j]["headline"];
        
_root.mc1.xmlText.htmlText textArray[j]["subtext"];
        
fadeIn(_root.mc1);
        
delay2 setInterval(load_txt2,10000);
    }
    
    function 
load_txt2() {
        
clearInterval(delay2);
        
_root.mc1.swapDepths(_root.mc2);
        
fadeOut(_root.mc1);
        var 
Math.floor(Math.random()*textArray_l);
        
_root.mc2.xmlTitel2.htmlText textArray[k]["headline"];
        
_root.mc2.xmlText2.htmlText textArray[k]["subtext"];
        
fadeIn(_root.mc2);
        
delay=setInterval(load_txt,10000);
    }
    
    function 
fadeIn(movie) {
        
movie._alpha 0;
        
_root.onEnterFrame = function() {
            
movie._alpha += 1;
            
//trace(movie);
            //trace(movie._alpha);
            
if(movie._alpha 50) {
                
movie._alpha 100;
                
delete _root.onEnterFrame;
            }
        }
    }
    
    function 
fadeOut(movie) {
        
movie._alpha 100;
        
_root.onEnterFrame = function() {
            
movie._alpha -= 1;
            if(
movie._alpha 2) {
                
movie._alpha 0;
                
delete _root.onEnterFrame;
            }
        }
    }

also es geht alles. die texte werden in das array geladen, das array wird ausgelesen und die texte werden auch im random-verfahren angezeigt. nur leider ist nichts mit faden. hab auch schon bei der fadeIn-funktion mal "trace(movie._alpha);" gemacht. da werden mir auch schön die alpha-werte angezeigt, nur passiert kein fade in. ich scheine einfach den wald vor lauter bäumen nicht zu sehen. meiner meinung nach wird alles korrekt angesprochen, sonst würden ja keine ausgaben kommen.

also nach langer rede nochmal: das faden klappt überhaupt nicht, obwohl die funktion fadeIn beispielsweise durchlaufen wird. warum? was mache ich falsch?

ich hoffe jemand kann mir helfen. danke im voraus.
agge ist offline   Mit Zitat antworten
Alt 23-05-2007, 22:53   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
nur leider ist nichts mit faden
Wenn in Textfeldern Alphas verwendet werden sollen, benötigt der Player die Vektorinformationen des oder der verwendeten Fonts. Dazu müssen entweder die entsprechenden Teile des Fonts in den Textfeldern über den Einbetten-Dialog des Eigenschaftenbedienfeldes gesetzt werden.

Oder aber du erstellst Textfelder dynamisch mit createTextfield, setzt die embedFonts-Eigenschaft auf true und importierst den Font über das Bibliotheks-Icon und Klick auf "Neue Schriftart" in die Bibliothek und gibst ihm einen Verknüpfungsbezeichner.
  Mit Zitat antworten
Alt 24-05-2007, 17:25   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 2
danke! es geht jetzt alles wunderbar. lag ehrlich gesagt etwas an mir. ich hab das zwar mit dem einbetten der fonts schon gemacht gehabt, aber ich hab irgendwie dem ganzen die entsprechenden variablen nicht zugeordnet.

nun gut, ich hab die fade funktionen nun zusammen in eine funktion gehauen. da gab es allerdings noch eine sache, die ich persönlich merkwürdig finde.

ich lasse eigentlich parallel den alpha-wert des einen movieclip immer um eins erhöhen. zeitgleich lasse ich den alpha-wert des anderen immer um eins vermindern. problem war nun, durch die ungerundeten werte, dass das vermindern ungefähr ein drittel zu schnell ist, und damit in den negativen bereich abfällt. ich hab die geschwindigkeit für das ausfaden jetzt auf 2/3 gesetzt und alles läuft super. merkwürdig find ich das aber schon.
agge ist offline   Mit Zitat antworten
Alt 24-05-2007, 20:33   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Der Alphawert wird zwar in 100 % gerechnet, also von 0 bis 100. Tatsächlich ist das aber auch nur ein Farbkanal über 256 Stufen, den Flash dann intern umrechnet. Du solltest also die Werte immer schön runden, sonst kann es zu den festgestellten Merkwürdigkeiten kommen...
  Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele