PDA

Volledige versie bekijken : Flash geeft error terwijl document wel bestaat--opgelost


damarez
%Europe/Berlin %443 %2008, 11:38
Ik heb een php class die voor mij de data uit een tabel parsed naar xml
<?php
/*
class om de navigatie voor de website op te zetten
*/
class navigatie
{
public function navigatie()
{
/*
hier word alles aangemaakt
*/
header("Content-type: text/xml");
include ("inc_connect.php");
$this->create();
}
protected function create()
{
/*
output als xml
*/
$xml_output = "<?xml version=\"1.0\"?>\n";
$xml_output .= "<Site>\n";
$query="SELECT * FROM navigatie ORDER BY item_id ASC";
$result = mysql_query($query) or die("FOUT : " . mysql_error());
while (list( $item_id,$omschrijving,$media,$datum) = mysql_fetch_row($result))
{
$xml_output .= "\t<Navigatie_item>\n";
$xml_output .= "\t\t<naam><![CDATA[" . $omschrijving. "]]></naam>\n";
$xml_output .= "\t\t<link><![CDATA[" ."index.php"."?rubriek=subnav&start=true&item_id=$item_id"."]]></link>\n";
$xml_output .= "\t</Navigatie_item>\n";
}
$xml_output .= "</Site>";
echo $xml_output;
}
}
$n=new navigatie();
?>

/**
* @author damarez
*/
import org.asapframework.events.EventDelegate;
class nl.flymedia.asl.ui.Navigation extends MovieClip
{

private var xmlData:XML;
private var xmlNode:XMLNode;
private var naam:Array;
private var link:Array;
private var total:Number;
private var menu_btn:MovieClip;
private var label_txt:TextField;
private var menuArr:Array;

public function Navigation (timeline:MovieClip)
{
System.security.allowDomain ("www.thevalleyestate.com/");
xmlNode = this.xmlData.firstChild;
xmlData = new XML ();
loadData ("http://www.thevalleyestate.com/thevalley/nl/base_xml.php",timeline);
menuArr = new Array ();
trace (xmlData);

}
private function loadData (url:String, timeline:MovieClip)
{
xmlData.ignoreWhite = true;
xmlData.onLoad = EventDelegate.create (this, loadXML, timeline);
xmlData.load (url);
}
private function loadXML (timeline:MovieClip):Void
{
naam = [];
link = [];
total = xmlNode.childNodes.length;
for (var i:Number = 0; i < total; i++)
{
naam[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
link[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
}
getItems (timeline);
}
private function getItems (timeline:MovieClip):Void
{
for (var i:Number = 0; i < total; i++)
{
trace (i);
menuArr.push (menu_btn);
menu_btn.x += menu_btn.width * i;
menu_btn.y = Math.round ((menu_btn.height / 2));
menu_btn.onRelease = EventDelegate.create (timeline, changeOldContent, menu_btn, i);
startup ();
}
}
private function enableButtons ():Void
{
for (var i:Number = 0; i < menuArr.length; i++)
{
menuArr[i].enabled = true;
trace (menuArr[i]);
menuArr[i].onEnterFrame = EventDelegate.create (this, playBack, menuArr[i]);
}
}
private function playBack (but:MovieClip):Void
{
if (but._currentframe == 1)
{
delete but.onEnterFrame;
}
else
{
but.prevFrame ();
}
}
private function playForward (but:MovieClip):Void
{
if (but._currentframe == but._totalframes)
{
delete but.onEnterFrame;
}
else
{
but.nextFrame ();
}
}
private function startup ()
{
enableButtons ();
menuArr[0].enabled = false;
var lastFrame:Number = menuArr[0]._totalframes;
var total = menuArr.length;
menuArr[0].onEnterFrame = EventDelegate.create (this, playForward, menuArr[0]);
}
private function changeOldContent (menu_btn:MovieClip, i:Number, container:MovieClip):Void
{
enableButtons ();
menu_btn.enabled = false;
var lastFrame:Number = menu_btn._totalframes;
menu_btn.onEnterFrame = EventDelegate.create (this, playForward, menu_btn);
getURL (link[i], "_blank");
}
}

Dauntless
%Europe/Berlin %445 %2008, 11:41
Wellicht net hetzelfde probleem als in dit topic?
http://www.flashfocus.nl/forum/showthread.php?t=47201

damarez
%Europe/Berlin %451 %2008, 11:49
ik test vanuit de flash ide
omdat het bestand online staat en door een webserver geparsed moet worden alvorens ik het binnenhaal
dan zou flash toch niet moeten zeuren of mij tenmiste een andere error moeten geven toch??

ik heb nu een crossdomain.xml op de root van mn webserver geplaatst
maar noch steeds niets
ik vind het bizzar
je krijgt van de as3 compiler een vage melding

Error opening URL 'http://www.thevalleyestate.com/thevalley/nl/base_xml.php'
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=500]
ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: http://www.thevalleyestate.com/thevalley/nl/base_xml.php"]

en van de as2 compiller een nog vagere melding

Error opening URL 'http://www.thevalleyestate.com/thevalley/nl/base_xml.php'

Dauntless
%Europe/Berlin %481 %2008, 12:33
En je hebt de SWF locatie (of de SWF zelf) toegevoegd aan de betrouwbare locaties in de Settings manager ?
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html#117502

damarez
%Europe/Berlin %534 %2008, 13:49
ook gedaan nog steeds hetzelfde

Jan
%Europe/Berlin %599 %2008, 15:23
Eigenlijk werkt het gewoon bij mij.
Enkel niet wanneer ik het in de Flash IDE zelf test.

swf+html op mijn bureaublad en getest vanuit de browser:
var xml:XML=new XML();
xml.ignoreWhite=true;
xml.load("http://thevalleyestate.com/thevalley/nl/base_xml.php");
xml.onData=function(str)
{
veld.text=str;//ik zie al je xml data
}

Maar ik moet toegeven dat het een eigenaardige issue is ivm de IDE die het niet doet.

EDIT: Het enige dat ik zou kunnen bedenken waarom het niet werkt vanuit de IDE is dat je op de server checkt op User-Agent. Dus eens kijken in een eventuele robots.txt file.
(al vind ik die niet)

Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

PS:
Server: Apache NOYBlol...

jvleeuwen18
%Europe/Berlin %625 %2008, 16:01
Heb ook zoiets een keer gehad. Nadat ik mijn web-geschiedenis had opgeruimd werkte het wel.
Misschien werkt dat ook bij jou?

damarez
%Europe/Berlin %657 %2008, 16:47
post aangepast

Jan
%Europe/Berlin %671 %2008, 17:06
Ik krijg zowel in Flash8 als in CS3 een
Error opening URL 'http://www.thevalleyestate.com/thevalley/nl/base_xml.php'
Maar als ik volgend stukje AS2 compile met Flash8 en ook met Flash CS3
var xml:XML=new XML();
xml.ignoreWhite=true;
xml.load("http://thevalleyestate.com/thevalley/nl/base_xml.php");
xml.onData=function(str)
{
veld.text=str;//ik zie al je xml data
}
en vanaf mijn pc(Windows xp) test vanuit de browser (FF),
dan zie ik in beide gevallen toch alle data hoor.

Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

damarez
%Europe/Berlin %677 %2008, 17:15
aangepast i.v.m google

Jan
%Europe/Berlin %697 %2008, 17:44
Ik blijf gokken op een server configuration issue en meerbepaald een User-Agent probleem.(aangezien het vanuit Firefox wel werkt)
Kijk eens naar de Apache logs daar. (een 403 error ergens?)
Als het niet in een robots.txt staat (die ik niet vind en dus waarschijnlijk niet bestaat) dan zit het misschien in mod_security.
Zet anders je php file/class eens op een andere server en test dan nog eens in Flash.

EDIT: Als ik in firefox tamperdata gebruik en de User-agent delete en vervang door: "Shockwave Flash" krijg ik net dezelfde situatie als in de IDE: url/php/xml wordt niet geladen en krijg een undefined in de xml.onData event handler.

Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

damarez
%Europe/Berlin %832 %2008, 20:58
aangepast i.v.m. google

Jan
%Europe/Berlin %888 %2008, 22:20
Je modSecurity rules wat aanpassen:
Vind je ergens een deze conf file?
modsecurity/useragents.conf
Daar kan je Flash uit weghalen en het 'probleem' is opgelost.
SecFilterSelective HTTP_USER_AGENT "^Shockwave Flash"
Ik ben zelf niet echt vertrouwd met modSecurity en ipv die regel helemaal weg te halen (hij staat er misschien tussen voor wordPress) kan je ook 'ergens' uitzonderingen maken voor bepaalde ip's. Da's nog beter natuurlijk maar daarvoor moet je even googlen.

En eigenlijk zou je helemaal niks moeten aanpassen want vanuit de browser werkt je site/script naar behoren. Het is alleen vervelend dat je niet in de IDE kan testen.

Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

damarez
%Europe/Berlin %357 %2008, 09:34
Hey adnez
klopt wel wat je zegt als ik het upload is er niks meer mee aan
de hand.Bedankt voor de uitleg kan ik nu ook in dit soort gevallen beter troubleshooten

gr Damarez