Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-09-2011, 13:47   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 31
Flashbutton, Colorbox & XML-Datei

Hallo! Vielleicht kann mir jemand mit meinem Script helfen?
Ich habe eine Website mit einer SWF-Datei die viele Schaltflächen (21 Stück) beinhaltet. Die Flashbuttons öffnen bei klick die jeweilige Rubrik in Form einer "colorbox" in der eine beliebige HTML-Seite angezeigt wird. Das funktioniert noch wunderbar und zwar ist das mein Script auf den Flash-Schaltflächen:
PHP-Code:
import flash.external.ExternalInterface;
kontakt2_btn.onRelease = function() {
ExternalInterface.call("launchColorBox","http://www.hierdieAdresse.de/",false);

So sieht mein HTML aus:
HTML-Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Opening a ColorBox from Flash</title>
<link media="screen" rel="stylesheet" href="colorbox.css" />
<script src="Scripts/swfobject_modified.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="colorbox/jquery.colorbox.js"></script>

</head>

<body>
<center>
<object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%">
  <param name="movie" value="Startseite.swf">
  <param name="quality" value="high">
  <param name="wmode" value="transparent">
  <param name="swfversion" value="6.0.65.0">

  <!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
  <!--[if !IE]>-->
  <object type="application/x-shockwave-flash" data="Startseite.swf" width="100%" height="100%">
    <!--<![endif]-->
    <param name="quality" value="high">
    <param name="wmode" value="transparent">
    <param name="swfversion" value="6.0.65.0">
    <param name="expressinstall" value="Scripts/expressInstall.swf">
    <param name="allowscriptaccess" value="always">
    <!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. -->
    <div>
      <h4>Content on this page requires a newer version of Adobe Flash Player.</h4>
      <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" width="112" height="33" /></a></p>
    </div>
    <!--[if !IE]>-->
  </object>
  <!--<![endif]-->
</object>
<script type="text/javascript">
swfobject.registerObject("FlashID");
</script>
<script>

   function launchColorBox(url){
        $.colorbox({href:url,width:"80%", height:"80%",iframe:true});
     }
   
</script></center>
</body>
</html>
Jetzt zum Problem: Ich möchte nun das die Flashbuttons die Adressen der Rubriken aus einer XML-Datei entnehmen und in der Colorbox anzeigen. Ohne Colorbox- also nur im neuen Browserfenster funktioniert das bei mir so (Beispiel anhand Button Nr. 16)
PHP-Code:
weblinkXML = new XML();
weblinkXML.ignoreWhite true;
weblinkXML.load("url.xml");
weblinkXML.onLoad = function (success)
{
    var 
url weblinkXML.firstChild.childNodes[16].attributes.href;
    
kontakt2_btn.onRelease = function() {
        
getURL(url"_blank");
    };

Die XML-Datei hat folgenden Inhalt:
HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<navigation>
    <item id="ueberuns" href="http://www.hierdieAdresse.de"/>
    <item id="aktuelles" href="http://www.hierdieAdresse.de""/>
    <item id="kontakt1" href="http://www.hierdieAdresse.de"/>
usw........
</navigation>
Kann mir bitte jemand weiterhelfen?
Spher77 ist offline   Mit Zitat antworten
Alt 19-09-2011, 09:20   #2 (permalink)
AS3-boon
 
Benutzerbild von 3kleinemarder
 
Registriert seit: Sep 2011
Ort: Hesse
Beiträge: 12
wie waere es wenn du erst die urls aus der XML laedst:

21 verschiedene (muss ja nich mit forschleife)
Code:
weblinkXML = new XML();
weblinkXML.ignoreWhite = true;
weblinkXML.load("url.xml");
weblinkXML.onLoad = function (success)
{
    for(i=0; i <= 20; i++)
    {
       var _global["url"+i] = weblinkXML.firstChild.childNodes[i].attributes.href;
    }
}
und die btns dann
Code:
kontakt2_btn.onRelease = function() {
ExternalInterface.call("launchColorBox", url16,false);
}
__________________
sine qua non
3kleinemarder ist offline   Mit Zitat antworten
Alt 19-09-2011, 13:03   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 31
Syntaxfehler

Hi und Danke für die Hilfe!
Habe Deinen Vorschlag mal ausprobiert. Leider wird für die Zeile:

var _global["url"+i] = weblinkXML.firstChild.childNodes[i].attributes.href;

ein Syntaxfehler gemeldet und ich habe keinen Plan woran es liegen könnte.

Habe ich Dich denn überhaupt richtig verstanden? Pro Button dieses Script:
PHP-Code:
on (press) {
    
weblinkXML = new XML();
    
weblinkXML.ignoreWhite true;
    
weblinkXML.load("url.xml");
    
weblinkXML.onLoad = function (success)
{
    for(
i=0<= 20i++)
    {
       var 
_global["url"+i] = weblinkXML.firstChild.childNodes[i].attributes.href;
    }
    
kontakt2_btn.onRelease = function() {
ExternalInterface.call("launchColorBox""http://www.hierdieurl.de",false);
}

Gruß
Sebastian
Spher77 ist offline   Mit Zitat antworten
Alt 19-09-2011, 13:17   #4 (permalink)
AS3-boon
 
Benutzerbild von 3kleinemarder
 
Registriert seit: Sep 2011
Ort: Hesse
Beiträge: 12
hallo.

diesen teil nur einmal ausfuehren ( und das "var" vor _global entfernen):
Code:
weblinkXML = new XML();
weblinkXML.ignoreWhite = true;
weblinkXML.load("url.xml");
weblinkXML.onLoad = function (success)
{
    for(i=0; i <= 20; i++)
    {
      _global["url"+i] = weblinkXML.firstChild.childNodes[i].attributes.href; //erstellt die variablen url0 bis url20
    }
}
die btns bindest wie gehabt, das hier ist nur das beispiel fuer deinen btn aus der frage.
Code:
kontakt2_btn.onRelease = function() {
ExternalInterface.call("launchColorBox", url16,false);
}
__________________
sine qua non
3kleinemarder ist offline   Mit Zitat antworten
Alt 19-09-2011, 16:52   #5 (permalink)
AS3-boon
 
Benutzerbild von 3kleinemarder
 
Registriert seit: Sep 2011
Ort: Hesse
Beiträge: 12
hallo.

hier, ergaenzend, nochmal deine loesung in einem frame.
ich denk mir mal ein paar btn namen aus,
reduziere es aber auf 4 ^^
frame 1:
Code:
weblinkXML = new XML();
weblinkXML.ignoreWhite = true;
weblinkXML.load("url.xml");
weblinkXML.onLoad = function (success)
{
    for(i=0; i <= 20; i++) //die schleife holt 21 (von 0-20) href's aus deiner xml
    {
       _global["url"+i] = weblinkXML.firstChild.childNodes[i].attributes.href; //erstellt die variablen url0 - url20
    }
}

kontakt_btn.onRelease = function() {
ExternalInterface.call("launchColorBox", url0,false);
}
home_btn.onRelease = function() {
ExternalInterface.call("launchColorBox", url1,false);
}
news_btn.onRelease = function() {
ExternalInterface.call("launchColorBox", url2,false);
}
kontakt2_btn.onRelease = function() {
ExternalInterface.call("launchColorBox", url3,false);
}
stop();
jetzt duerfte alles klar sein, denk ich. viel spass.
__________________
sine qua non

Geändert von 3kleinemarder (19-09-2011 um 19:49 Uhr)
3kleinemarder ist offline   Mit Zitat antworten
Alt 20-09-2011, 09:00   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 31
Puhh- ich probiers gleich aus!

Danke, ich melde mich danach zurück!
Spher77 ist offline   Mit Zitat antworten
Alt 20-09-2011, 10:54   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 31
Ich werde wahnsinnig...

Funktioniert immer noch nicht
Die Colorbox geht auf, bleibt aber weiß und leer.
Ich beschreibe noch einmal wie es jetzt aussieht anhand der ersten 4 Buttons:
In meiner .fla liegen die Buttons alle untereinander auf dem ersten Schlüsselbild in der Zeitleiste.
In einem weiteren Frame (auch auf dem ersten Schlüsselbild) liegt Dein Script mit meinen Bezeichnungen für die Btn`s:
PHP-Code:
weblinkXML = new XML();
weblinkXML.ignoreWhite true;
weblinkXML.load("url.xml");
weblinkXML.onLoad = function (success)
{
    for(
i=0<= 20i++) //die schleife holt 21 (von 0-20) href's aus deiner xml
    
{
       
_global["url"+i] = weblinkXML.firstChild.childNodes[i].attributes.href//erstellt die variablen url0 - url20
    
}
}

ueberuns_btn.onRelease = function() {
ExternalInterface.call("launchColorBox"url0,false);
}
aktuelles_btn.onRelease = function() {
ExternalInterface.call("launchColorBox",url1,false);
}
kontakt1_btn.onRelease = function() {
ExternalInterface.call("launchColorBox"url2,false);
}
sitemap_btn.onRelease = function() {
ExternalInterface.call("launchColorBox"url3,false);
}
stop(); 
Und auf den Schaltflächen selbst liegt dann jeweils noch einmal das AS (Nur das ich in der Zeile: ExternalInterface.call("launchColorBox",url0,false); die url`s von 0 bis 3 durchnummeriere.):
PHP-Code:
on (press) {
    
import flash.external.ExternalInterface;
    
ueberuns_btn.onRelease = function() {
        
ExternalInterface.call("launchColorBox",url0,false);
    }

Das ist die XML:
HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<navigation>
    <item id="ueberuns_btn" href="http://www.google.de"/>
    <item id="aktuelles_btn" href="http://www.uhu.de"/>
    <item id="kontakt1_btn" href="http://www.amazon.de"/>
    <item id="sitemap_btn" href="http://www.flashforum.de"/>   
</navigation>
Wie gesagt, die Box geht auf bleibt aber leer.
Spher77 ist offline   Mit Zitat antworten
Alt 20-09-2011, 11:23   #8 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Versuch's mal mit diesem (ungetesten) Script:
PHP-Code:
import flash.external.ExternalInterface;

stop();

function 
openHref():Void {
    
trace("öffne " this.href);
    
ExternalInterface.call("launchColorBox"this.hreffalse);
}

var 
weblinkXML:XML = new XML();
weblinkXML.ignoreWhite true;
weblinkXML.onLoad = function (success:Boolean) {
    if (!
success) {
        
trace("Konnte kein XML laden");
        return;
    }
    
    var 
node:XMLNode;
    var 
btn;
    for (var 
i:Number 0<= weblinkXML.firstChild.childNodes.lengthi++) { 
        
node weblinkXML.firstChild.childNodes[i];
        
btn _root[node.attributes.id];
        if (
btn) {
            
btn.id node.attributes.id;
            
btn.href node.attributes.href;
            
btn.onRelease openHref;
        } else {
            
trace("Es existiert kein Buttonnamens "+node.attributes.id);
        }
    }
}

weblinkXML.load("url.xml"); 
Auf die Buttons selbst solltest Du (auch generell) überhaupt kein AS legen!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 20-09-2011, 12:12   #9 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 31
Wie funktioniert das???

Hi Martin und Danke das du mir auch hilfst!
Leider verstehe ich dein Script nicht...
Brauche ich dazu dann noch ein Script extra für alle Schaltflächen?
Nur mit dem Script gehts ja nicht, oder muß ich hergehen und in deinem Script was hinzufügen? Die Schaltflächenbezeichnungen zum Beispiel??

Gruß
Sebastian
Spher77 ist offline   Mit Zitat antworten
Alt 20-09-2011, 12:35   #10 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Spher77 Beitrag anzeigen
Hi Martin und Danke das du mir auch hilfst!
Leider verstehe ich dein Script nicht...
Ist eigentlich ganz einfach:
  • Das XML wird wie gehabt geladen
  • Dann durchläuft eine Schleife alle XML-Nodes
    • sucht sich entsprechend der dort gespeicherten ids die Buttons raus
    • speichert in diesen alle nötigen Informationen
    • und weist ihnen schließlich das Button-Script openHref zu
  • Bei Klick werden dann nur noch die im jeweiligen Button gespeicherten Infos an JS übergeben.

Zitat:
Zitat von Spher77 Beitrag anzeigen
Brauche ich dazu dann noch ein Script extra für alle Schaltflächen?
Nein (wie ich oben schon geschrieben habe)!

Zitat:
Zitat von Spher77 Beitrag anzeigen
Nur mit dem Script gehts ja nicht,...
Was geht denn nicht?
  • Bekommst Du AS- oder JS-Fehlermeldungen?
  • Welche traces bekommst Du ausgegeben?
  • Kann man sich das ganze mal irgendwo online ansehn?

Zitat:
Zitat von Spher77 Beitrag anzeigen
...oder muß ich hergehen und in deinem Script was hinzufügen?


Zitat:
Zitat von Spher77 Beitrag anzeigen
Die Schaltflächenbezeichnungen zum Beispiel??
Die Instanznamen sollten natürlich so sein, wie Du sie im XML angegeben hast.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (20-09-2011 um 13:09 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 20-09-2011, 14:00   #11 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 31
Sensationell! Es läuft!

Super 1000 Dank für Deine Hilfe!!!
Es läuft, habe wohl vorhin alles durcheinandergehauen und den Wald vor lauter Bäumen nicht gesehen.
Sobald die Seite online geht schicke ich dir den Link.
Danke auch noch mal 3kleinemarder!

Grüße
Sebastian
Spher77 ist offline   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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ColorBox Steeven Flash Einsteiger 7 23-02-2006 15:28
FlashButton Q-Tipp Flash MX 2004 6 26-09-2004 19:24
flashbutton wurzelquadrit Flash MX 3 24-02-2004 16:47
Flashbutton peter_muster Flash MX 1 10-02-2004 12:58
CSS auf Flashbutton... Slater Flash 4 und Flash 5 5 19-07-2003 12:48


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele