| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Aug 2006
Beiträge: 195
| Complete Event wird nach der Veröffentlichung nicht aufgerufen
hallo, ich habe ein sehr komisches problem....ich lese aus einer xml datei und rufe eine funktion bei dem event "COMPLETE" auf. in flash funktioniert alles bis zur sekunde der veröffentlichung. im browser kommt er nicht zum ende. orderstruktur sowie datenstruktur sind unverändert. die datei liegt in einem unterordner namens "hidden". Code: var myRequest:URLRequest = new URLRequest("hidden/config.xml");
var myLoader:URLLoader = new URLLoader();
myLoader.load(myRequest);
myLoader.addEventListener(Event.COMPLETE, onComplete);
function onComplete(event:Event):void
{
myLoader = event.target as URLLoader;
if (myLoader != null)
{
externalXML = new XML(myLoader.data);
trace("Vars initialisiert : \n\r" + externalXML.toXMLString());
}
else
{
trace("loader is not a URLLoader!");
}
} freue mich über jede hilfe! lg, nick |
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
| Schaue mal nach contentLoaderInfo. Die EventListener müssen an dieses Property angehangen werden.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #4 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
| Kein Plan.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Aug 2006
Beiträge: 195
|
überall sehe ich, das es folgend gemacht wird: Code: myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); ReferenceError: Error #1069: Eigenschaft contentLoaderInfo für flash.net.URLLoader nicht gefunden und es ist kein Standardwert vorhanden. muss ich "contentLoaderInfo" irgendwie deklarieren oder so? irgendwie ist diese methode nicht bekannt, bzw. wird nicht im kontextmenü angezeigt. ich bin echt verzeifelt, ich saß stunden an dem projekt und nun ist alles so wie es sein soll und der export funkst nicht. das kanns doch nicht sein, selbst die vorschau funktioniert so wie sie sein soll. wenn ich irgendwas in as 3 falsch gemacht habe, sollte doch flash das nicht richtig anzeigen bzw. mir das abspielen ohne zu meckern - ich verstehe die welt nicht mehr. |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Aug 2006
Beiträge: 195
|
aus lauter verzweiflung werde ich jetzt meinen gesamten code offen legen.... meine xml: Code: <data>
<item id='1'>
<filename>CSC3_de.flv</filename>
<linktext>Mehr über ContiSportContact 3</linktext>
<linktext_x>150</linktext_x>
<linktext_y>250</linktext_y>
<linktarget>http://www.google.de</linktarget>
<replaytext>Nochmal abspielen</replaytext>
<targetwindow>_blank</targetwindow>
<replaytext_x>500</replaytext_x>
<replaytext_y>250</replaytext_y>
<textcolor>FB9D00</textcolor>
<textsize>16</textsize>
<font>Arial</font>
<loadingtext>Loading...</loadingtext>
<loadingtextcolor>FB9D00</loadingtextcolor>
<loadingtextsize>12</loadingtextsize>
<loadingtextfont>Arial</loadingtextfont>
<loadingtext_x>355</loadingtext_x>
<loadingtext_y>170</loadingtext_y>
</item>
</data> Code: import flash.*;
/* Init flashvars =>
filename //Videodateiname in "hidden/"
linktext //Linktext
linktext_x //X-Koordinate für die Linkposition
linktext_y //Y-Koordinate für die Linkposition
linktarget //linkadresse
replaytext //Text für das erneute Abspielen
replaytext_x //X-Koordinate für die Replaytextposition
replaytext_y //Y-Koordinate für die Replaytextposition
targetwindow // _blank / _self
textcolor // in Hex, ohne #
*/
var myVideo:Video = new Video(790,290);
var myLink:TextField = new TextField();
var myReplayText:TextField = new TextField();
var mc:MovieClip = new MovieClip();
var mc2:MovieClip = new MovieClip();
var externalXML:XML;
var myRequest:URLRequest = new URLRequest("hidden/config.xml");
var myLoader:URLLoader = new URLLoader(myRequest);
var format:TextFormat = new TextFormat();
var myTimer:Timer = new Timer(0,2000);
var loaderBg:MovieClip = new MovieClip();
var lText:TextField = new TextField();
var myLinkAd:MovieClip = new MovieClip();
var myReplayAd:MovieClip = new MovieClip();
var myLinkAd2:MovieClip = new MovieClip();
var myReplayAd2:MovieClip = new MovieClip();
var bufferPct:Number = new Number();
var loadInfo:LoaderInfo = new LoaderInfo();
var filename = "";
var linktext = "";
var linktext_x = "";
var linktext_y = "";
var linktarget = "";
var replaytext = "";
var replaytext_x = "";
var replaytext_y = "";
var targetwindow = "";
var textcolor = "";
var textsize = 10;
var font = "Arial";
var loadingtext = "";
var loadingtextsize = 10;
var loadingtextfont = "Arial";
var loadingtextcolor = "";
var loadingtext_y = 170;
var loadingtext_x = 355;
myLoader.addEventListener(Event.COMPLETE, handleComplete);
pfeil_small.visible = false;
pfeil_big.visible = false;
pfeil_small2.visible = false;
pfeil_big2.visible = false;
myLinkAd = pfeil_small;
myReplayAd = pfeil_small2;
myLinkAd2 = pfeil_big;
myReplayAd2 = pfeil_big2;
loaderImg.visible = true;
addChild(myVideo);
addChild(myLink);
addChild(myLinkAd);
addChild(myLinkAd2);
addChild(mc2);
addChild(myReplayText);
addChild(myReplayAd);
addChild(myReplayAd2);
addChild(mc);
addChild(loaderBg);
addChild(loaderImg);
addChild(lText);
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.client = new Object();
ns.bufferTime = 5;
myVideo.attachNetStream(ns);
var buffer_interval:Number = setInterval(checkBufferTime, 100, ns);
function checkBufferTime(my_ns:NetStream):void {
bufferPct = Math.min(Math.round(my_ns.bufferLength/my_ns.bufferTime*100), 100);
if(bufferPct >= 100)
{
loaderImg.visible = false;
loaderBg.visible = false;
lText.visible = false;
ns.resume();
}
}
ns.addEventListener(NetStatusEvent.NET_STATUS ,
function(event:Event) {
trace("event : " + event.info.code);
if (event.info.code == "NetStream.Play.StreamNotFound") {
trace("Videodatei nicht vorhanden");
}
else if (event.info.code == "NetStream.Buffer.Full") {
trace("Buffer voll und Start");
}
else if (event.info.code == "NetStream.Play.Stop") {
trace("FilmEnde");
movieEnd();
}
}
);
function playMovie():void{
trace("start");
ns.play("hidden/" + filename);
ns.seek(1);
ns.pause();
}
function handleComplete(event:Event):void
{
myLoader = event.target as URLLoader;
if (myLoader != null)
{
externalXML = new XML(myLoader.data);
trace("Vars initialisiert : \n\r" + externalXML.toXMLString());
initVars();
init();
playMovie();
}
else
{
trace("loader is not a URLLoader!");
}
}
function initVars():void{
filename = externalXML.item[0].filename;
linktext = externalXML.item[0].linktext;
linktext_x = externalXML.item[0].linktext_x;
linktext_y = externalXML.item[0].linktext_y;
linktarget = externalXML.item[0].linktarget;
replaytext = externalXML.item[0].replaytext;
replaytext_x = externalXML.item[0].replaytext_x;
replaytext_y = externalXML.item[0].replaytext_y;
targetwindow = externalXML.item[0].targetwindow;
textcolor = externalXML.item[0].textcolor;
textsize = externalXML.item[0].textsize;
font = externalXML.item[0].font;
loadingtext = externalXML.item[0].loadingtext;
loadingtextcolor = externalXML.item[0].loadingtextcolor;
loadingtextsize = externalXML.item[0].loadingtextsize;
loadingtextfont = externalXML.item[0].loadingtextfont;
loadingtext_y = externalXML.item[0].loadingtext_y;
loadingtext_x = externalXML.item[0].loadingtext_x;
}
function init():void{
format.font = loadingtextfont;
format.color = "0x" + loadingtextcolor;
format.size = loadingtextsize;
lText.text = loadingtext;
lText.width = lText.length * 4 + (loadingtextsize * 2);
lText.selectable = false;
lText.x = loadingtext_x;
lText.y = loadingtext_y;
lText.setTextFormat(format);
loaderBg.graphics.beginFill(0x000000);
loaderBg.graphics.drawRect(0, 0, 800,800);
loaderBg.alpha = 0.8;
loaderBg.graphics.endFill();
loaderBg.x = 0;
loaderBg.y = 0;
loaderBg.visible = true;
format.font = font;
format.color = "0x" + textcolor;
format.size = textsize;
myLink.htmlText = "<a href=\"" + linktarget + "\" target=\"" + targetwindow + "\">" + linktext + "</a>";
myLink.x = linktext_x;
myLink.y = linktext_y;
myLink.width = 250;
//myLink.textColor = "0x" + textcolor;
myLink.visible = false;
myLink.selectable = false;
myReplayAd.y = replaytext_y;
myReplayAd.x = replaytext_x;
myReplayAd2.y = replaytext_y;
myReplayAd2.x = replaytext_x;
myReplayAd.visible = false;
myReplayAd2.visible = false;
myLinkAd.x = linktext_x;
myLinkAd.y = linktext_y;
myLinkAd.visible = false;
myLinkAd2.x = linktext_x;
myLinkAd2.y = linktext_y;
myLinkAd2.visible = false;
myLink.setTextFormat(format);
myReplayText.textColor = "0x" + textcolor;
myReplayText.visible = false;
myReplayText.text = replaytext;
myReplayText.selectable = false;
myReplayText.x = replaytext_x;
myReplayText.y = replaytext_y;
myReplayText.setTextFormat(format);
myReplayText.width = 150;
mc.graphics.beginFill(0x000000);
mc.graphics.drawRect(0, 0, 150, textsize * 2);
mc.alpha = 0;
//mc.graphics.drawRect(0, 0, 80, 80);
mc.graphics.endFill();
//mc.x = 500;
//mc.y = 250;
mc.x = replaytext_x;
mc.y = replaytext_y;
mc.buttonMode = true;
mc.useHandCursor = true;
mc.addEventListener(MouseEvent.CLICK, restartMovie);
mc.addEventListener(MouseEvent.ROLL_OVER, changeToBig2);
mc.addEventListener(MouseEvent.ROLL_OUT, changeToSmall2);
mc2.graphics.beginFill(0x000000);
mc2.graphics.drawRect(0, 0, 250 , textsize * 2);
mc2.alpha = 0;
//mc.graphics.drawRect(0, 0, 80, 80);
mc2.graphics.endFill();
//mc.x = 500;
//mc.y = 250;
mc2.x = linktext_x;
mc2.y = linktext_y;
mc2.buttonMode = true;
mc2.useHandCursor = true;
mc2.addEventListener(MouseEvent.ROLL_OVER, changeToBig);
mc2.addEventListener(MouseEvent.ROLL_OUT, changeToSmall);
}
function changeToSmall(event:MouseEvent):void{
if(myLink.visible)
{
trace("changeToSmall");
myLinkAd2.visible = false;
myLinkAd.visible = true;
}
}
function changeToBig(event:MouseEvent):void{
if(myLink.visible)
{
trace("changeToBig");
myLinkAd.visible = false;
myLinkAd2.visible = true;
}
}
function changeToSmall2(event:MouseEvent):void{
if(myReplayText.visible)
{
trace("changeToSmall2");
myReplayAd2.visible = false;
myReplayAd.visible = true;
}
}
function changeToBig2(event:MouseEvent):void{
if(myReplayText.visible)
{
trace("changeToBig2");
myReplayAd.visible = false;
myReplayAd2.visible = true;
}
}
function restartMovie(event:MouseEvent):void{
init();
playMovie();
}
function movieEnd():void{
myReplayText.visible = true;
myLink.visible = true;
myReplayAd.visible = true;
myLinkAd.visible = true;
} |
| | |
| | #9 (permalink) |
| flashback Registriert seit: Aug 2003
Beiträge: 529
|
bedeutet, das letztendlich dein xml nicht geladen wird, richtig?! ich denke, das ist ein pfadproblem. klingt unglaublich, ist aber so. verschaffe dir mal gewissheit mit einem IOERROR event, den du an deinen loader bindest: Code: myLoader.addEventListener(IOErrorEvent.IO_ERROR, loadingError );
function loadingError (event:IOErrorEvent):void
{
trace ("ERROR TYPE: " + event.type + "\nERROR PHASE: " + + event.eventPhase + "\nERROR MESSAGE: " + event.text);
} |
| | |
| | #10 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Oder ein security Problem. Guck mal in den Veröffentlichungseinstellungen, da kann man festlegen, ob Flash entweder aufs Internet, oder auf lokale Dateien zugreifen kann. Hast du den Debug-Player installiert? Der würde dir ziemlich sicher ne Exception liefern.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #11 (permalink) |
| Lehrling Registriert seit: Jan 2007 Ort: Berlin
Beiträge: 172
|
Nix da... addEventListener gehören bei der Loader-Klasse dem contentLoaderInfo und beim URLLoader-Klasse ganz normal der Klasse selbst (URLLoader.addEventListener(...,...); MfG
__________________ Mit besten Grüßen, Best regards, neknova |
| | |
| | #13 (permalink) |
| l2l|c4o Registriert seit: Nov 2005 Ort: düstere Grotte im Süden
Beiträge: 968
|
ehhm .. also so mache ich das zB gar nicht mehr . Wenn ich irgendetwas mache dann ist meine Bühne lehr und ich hohle mir alles nur über code auf die Bühne mit Klassen , dann hat man auch meistens solche Probleme nicht . einfach in der Hilfe auf EventDispatcher class und dann mal ganz nach unten Scrollen da ist so ein Beispiel mit CustomDispatcher das mußt du anwenden PHP-Code: das ist schon alles ein wenig anders in as3 also ich gehe jetzt mal davon aus das wenn es im FDT Browser geht es dann auch online geht Das ist aber auch SpaghettiWirwarCode der offengelegte code also nicht in Klassen strukturiert das sollen/dürfen wir eigentlich garnichtmehr machen !! Also Singleton , Proxy und Interface das sollte eigentlich alles sitzen dann kannst du dich an as3 ranwagen , du willst doch spaß und Überblick und Erfolg haben - oder Geändert von Sir Freako (19-12-2007 um 23:39 Uhr) |
| | |
| | #14 (permalink) |
| Lehrling Registriert seit: Jan 2007 Ort: Berlin
Beiträge: 172
|
Kannst du mir mal verraten, weshalb er sich seinen eigenen Event basteln soll, wenn es doch schon hierfür ein Standard-Event geben tut? Soll er vielleicht noch ne Klasse: "XMLReallyReallyLoaded" mit dem Event: "XMLReallyReallyLoaded.I_SWEAR_THAT" schreiben?
__________________ Mit besten Grüßen, Best regards, neknova |
| | |
| | #15 (permalink) | |
| Lehrling Registriert seit: Jan 2007 Ort: Berlin
Beiträge: 172
| Zitat:
wohl eher MVC, T-Factory, Combined-Iterator, Composite oder gar Command Pattern... Nur ein oder zwei DesignMuster drauf zu haben ist meines Erachtens Schwachsinn......keine halben Sachen ;-)
__________________ Mit besten Grüßen, Best regards, neknova | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |