Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-02-2010, 15:30   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2010
Beiträge: 11
Externes SWF laden und auf MC's zugreifen

Guten Tag allerseits!! Bin neu hier und brauch keine kleine Hilfe. Folgendes:
Ich habe ein kleines Flash gebaut was zunächst einfach nur Bilder „eintweent“. Damit der erste SWF nicht zu gross wird möchte ich nachher einen „SWFcontainer“ nachladen wo dann noch mehr Bilder drin sind und diese dann ebenso im „MainSWF“ im laufende Tween mit einbauen bzw. die Bilder die im MainSWF sind mit den Bilder aus dem nachgeladenem „SWFcontainer“ ergänzen!

So weit so gut!!

Nun ich habe einen SWFcontainer gebaut und dort wie im MainSWF Bilder bereit gestellt. Zum test einfach einen simples Rechteck mal dazu.
Zum einen werden die Bilder nicht „gemocht“ als auch der simple Zugriff auf das bescheidene Rechteck wie z.B:
mytestMC.alpha = 0.5;
wird immer mit der Fehlermeldung quittiert:

TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.

Wieso NULL Objekt! Wenn ich das direkt im SWFcontainer mache fluppt das!!

Sprich um ein MC oder ein Bild aus dem nachgeladenem „SWFcontainer“ anzusprechen was stimmt da nicht oder was fehlt dort noch.

Hilfffffffeeeeee biiiiitttteeee!

Gruss
Eine AS3 Novize!!
--------------------------------------------------
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;


function run_loop(){


var _swfLoader:Loader;
var _swfContent:MovieClip;

loadSWF("contain2.swf");

function loadSWF(path:String):void {
var _req:URLRequest = new URLRequest();
_req.url = path;

_swfLoader = new Loader();
_swfLoader.contentLoaderInfo.addEventListener(Even t.INIT, addSWF);
_swfLoader.load(_req);}

function addSWF(event:Event):void {
event.target.removeEventListener(Event.INIT, addSWF);

_swfContent = event.target.content;
addChild(_swfContent); }


var n:int =5;

var i:Number = 1+ Math.floor(Math.random()*n);

var runnum;

switch(i)
{
case 1:
runnum= SWFcontainer.BannerBild; // der versuchte Zugriff auf den externen SWFcontainer
break;
case 2:
runnum=pic_mc02;
break;
case 3:
runnum=pic_mc03;
break;
default:
runnum=pic_mc04;
}

var myImage:BitmapData = new runnum(1, 1);
var bitmap:Bitmap = new Bitmap(myImage)

bitmap.alpha =0;
bitmap.x =0;
bitmap.y =0;

addChild(bitmap);

var my_tween:Tween = new Tween(runnum, "alpha", Strong.easeIn, 1, 0, 3, true);
my_tween.addEventListener(TweenEvent.MOTION_FINISH , nachoben);


function nachoben(){


run_loop();}}

run_loop()
renderview ist offline   Mit Zitat antworten
Alt 06-02-2010, 16:25   #2 (permalink)
░▒░▒░▒░▒░▒
 
Benutzerbild von slowkey
 
Registriert seit: Oct 2007
Ort: L.E.
Beiträge: 129
Hallo
müsste nicht der Complete Event dispatched werden.
Evtl. ist die SWF bei INIT noch nicht geladen.
Code:
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
Bzw. probier mal
Code:
var _bannerBild:*=_swfContent.getChildByName("BannerBild");
__________________
scio nescio
slowkey ist offline   Mit Zitat antworten
Alt 07-02-2010, 04:28   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2010
Beiträge: 11
Zitat:
Zitat von slowkey Beitrag anzeigen
Hallo
müsste nicht der Complete Event dispatched werden.
Evtl. ist die SWF bei INIT noch nicht geladen.
Code:
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
Bzw. probier mal
Code:
var _bannerBild:*=_swfContent.getChildByName("BannerBild");
Hallo, vielen dank für die Antwort und versuchte Hilfe. Ich bekommen diese Fehlermeldung:

TypeError: Error #1007: Versuchte Instanziierung für einen Nicht-Konstruktor.
at NewTaBanner05_externSWF_1_fla:MainTimeline/run_loop/NewTaBanner05_externSWF_1_fla:addSWF()[NewTaBanner05_externSWF_1_fla.MainTimeline::frame1 :85]

Gruss
renderview ist offline   Mit Zitat antworten
Alt 07-02-2010, 10:34   #4 (permalink)
░▒░▒░▒░▒░▒
 
Benutzerbild von slowkey
 
Registriert seit: Oct 2007
Ort: L.E.
Beiträge: 129
Ich werd nicht ganz schlau aus deinem Code.
Wo wird denn der "SWFContainer" definiert?

Was mir am Anfang von AS3 immer sehr geholfen hat, um die DisplayList zu verstehen war
http://livedocs.adobe.com/flash/9.0_...=00000149.html

da gibts ein Script traceDisplayList(), das traced dir rekursiv alle DisplayObjecte und müsste dir auch dann die Inhalte und deren Benamung in der geladenen Swf auspucken. Das geht für einzelne Container, aber auch für "this".
__________________
scio nescio

Geändert von slowkey (07-02-2010 um 11:03 Uhr)
slowkey ist offline   Mit Zitat antworten
Alt 07-02-2010, 11:40   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2010
Beiträge: 11
Externe Bilder aus SWF-Container laden!?

Zitat:
Zitat von slowkey Beitrag anzeigen
Ich werd nicht ganz schlau aus deinem Code.
Wo wird denn der "SWFContainer" definiert?

Was mir am Anfang von AS3 immer sehr geholfen hat, um die DisplayList zu verstehen war
http://livedocs.adobe.com/flash/9.0_...=00000149.html

da gibts ein Script traceDisplayList(), das traced dir rekursiv alle DisplayObjecte und müsste dir auch dann die Inhalte und deren Benamung in der geladenen Swf auspucken. Das geht für einzelne Container, aber auch für "this".
Hallo, noch mal vielen Dank für die versuchte Hilfe.
Ich habe ein Bild mit gesendet um zu verdeutlichen wie meiner Bilder im externen Container, den ich nachher dazu lade, vorliegen. Ich habe vorher ein Script gebaut wo die Bilder kurz hintereinander extern geladen wurden. Das führte dazu das sich der SWF nach einiger Zeit aufgehängt hat. Wenn ich nun die Bilder so dem „Tween“ zu zufüttere wie der Code es nun macht dann ist alles IO! Das sich mein vorheriges Script nicht bewährt hat liegt sicherlich an meinem Unvermögen.
Wie dem auch sei! Der Zugriff auf eine Image-Datei, so wie es nun wie im Bild zeige, das in einem externen SWF vorliegt das ich ohne Fehler laden kann! Wie lässt sich dieses z.B. „banner3“ und weitere andere in den laufenden Tween übergeben??
Gruss und Danke!!
renderview ist offline   Mit Zitat antworten
Alt 07-02-2010, 12:37   #6 (permalink)
░▒░▒░▒░▒░▒
 
Benutzerbild von slowkey
 
Registriert seit: Oct 2007
Ort: L.E.
Beiträge: 129
Ah sorry hab jetzt dein Bild gesehen.
um das bild aus der lib anzusprechen musst du erst die Klasse mit getDefinitonByName() bekommen
http://www.adobe.com/livedocs/flash/...initionByName()

Was willst du denn Umsetzen eine Slideshow o. ä.?
Da wäre es aber einfacher eine xml zu laden mit den Pfaden der Bilder und die Bilder dann einzeln zu laden.
Oder du machst in deinem Film auf jeden Keyframe ein Bild und hüpft dann dahin.
__________________
scio nescio

Geändert von slowkey (07-02-2010 um 12:46 Uhr)
slowkey ist offline   Mit Zitat antworten
Alt 07-02-2010, 12:59   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2010
Beiträge: 11
Zitat:
Zitat von slowkey Beitrag anzeigen
Ah sorry hab jetzt dein Bild gesehen.
um das bild aus der lib anzusprechen musst du erst die Klasse mit getDefinitonByName() bekommen
flash.utils Details (ActionScript 3.0))

Was willst du denn Umsetzen eine Slideshow o. ä.?
Da wäre es aber einfacher eine xml zu laden mit den Pfaden der Bilder und die Bilder dann einzeln zu laden.
Oder du machst in deinem Film auf jeden Keyframe ein Bild und hüpft dann dahin.
Flash ist sicher eines DER Authoring Tools schlechthin zumindest fürs Net. Aber aus meiner Erfahrung auch nach all der Zeit nicht wirklich ausgereift. Das sich ein SWF beim nachladen von vielen Bildern (Bild für Bild – kurz hintereinander in einen Tween) immer wieder aufhängt spricht ja für sich. So was sollte eigentlich nach all den Jahren, egal wie schlecht ich das programmiert habe – aber es läuft ja!!, nicht mehr geben. Nach etlichem probieren bin ich bei dieser Variante geblieben die anscheinend ohne murren durchläuft! So bin ich dazu gekommen ein „Paket“ an Bilder nachzuladen und eben nicht Bild für Bild für Bild...

Gruss und Danke
renderview ist offline   Mit Zitat antworten
Alt 07-02-2010, 14:18   #8 (permalink)
░▒░▒░▒░▒░▒
 
Benutzerbild von slowkey
 
Registriert seit: Oct 2007
Ort: L.E.
Beiträge: 129
du wirst ein problem mit deiner Garbage Collection haben
gskinner.com: gBlog: AS3: Resource Management pt 2
__________________
scio nescio
slowkey ist offline   Mit Zitat antworten
Alt 07-02-2010, 14:29   #9 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Zitat:
Zitat von renderview Beitrag anzeigen
So was sollte eigentlich nach all den Jahren, egal wie schlecht ich das programmiert habe – aber es läuft ja!!, nicht mehr geben.
Wow... das ist mal ein Anspruch an die Arbeit anderer... ich bin beeindruckt!
Omega Psi ist offline   Mit Zitat antworten
Alt 07-02-2010, 14:35   #10 (permalink)
Neuer User
 
Registriert seit: Feb 2010
Beiträge: 11
Kein Lösung in Sicht

Zitat:
Zitat von slowkey Beitrag anzeigen
du wirst ein problem mit deiner Garbage Collection haben
gskinner.com: gBlog: AS3: Resource Management pt 2
Hallo, ich denke das Problem liegt wohl eher am fehlen eines tieferen Verständnis in die Sache meinerseits! Ich kenn „Flash“ als es noch von „Macromedia“ war. Zu „Director’s“ Zeiten. Hab da viel und gerne mit gemacht! Nun mit „AS3“ scheint sich das dermassen verkompliziert zu haben. Man wird mit Fehlermeldungen konfrontiert die keiner deuten kann...
Irgendwie ist der Wurm in Flash reingekommen oder der Aufwand wird nun so gross, für ein wenig Animation... Ich bleibe am Ball, wenn das Problem so nicht zu lösen ist dann muss ein Umweg herhalten! Gruss und noch mal ein Danke für die Hilfe.
renderview ist offline   Mit Zitat antworten
Alt 08-02-2010, 03:50   #11 (permalink)
Neuer User
 
Registriert seit: Feb 2010
Beiträge: 11
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Wow... das ist mal ein Anspruch an die Arbeit anderer... ich bin beeindruckt!
Kindskopf...!
renderview ist offline   Mit Zitat antworten
Alt 08-02-2010, 12:24   #12 (permalink)
░▒░▒░▒░▒░▒
 
Benutzerbild von slowkey
 
Registriert seit: Oct 2007
Ort: L.E.
Beiträge: 129
mach ma langsam! ich hab auch mit Lingo programmieren gelernt und um auf meinem jetzigen Wissenstand zu kommen einige Nächte durchgemacht und an Problemen gegrübelt. Aber bevor ich andere im Flashforum um Hilfe bitte, schöpfe ich die Möglichkeiten einer Recherche im Netz, in der F1 Hilfe und der Actionscript Referenz aus. Das Internet ist selbstreflexiv, d.h. alles was du fürs Netz machen kannst, steht auch dort irgendwo dokumentiert.
Du kannst nicht vom Forum erwarten, dass es dir die Lösung auf einem silbernen Tablet liefert.
Und wenn dir AS3 zu hoch ist, dann lass es doch einfach.
__________________
scio nescio

Geändert von slowkey (08-02-2010 um 12:52 Uhr)
slowkey ist offline   Mit Zitat antworten
Alt 08-02-2010, 12:39   #13 (permalink)
░▒░▒░▒░▒░▒
 
Benutzerbild von slowkey
 
Registriert seit: Oct 2007
Ort: L.E.
Beiträge: 129
Aber kurz noch zu deinem Problem, das Aufhängen wird an der garbage collection und am fl.transitions.Tween, da gibts einige Artikel im Netz bestimmt auch im Forum. Nimm ne andere Tweenengine, TweenLite oder Caurina,
damit wird sich wahrscheinlich das Aufhäng Problem erledigt haben.
__________________
scio nescio

Geändert von slowkey (08-02-2010 um 12:51 Uhr)
slowkey ist offline   Mit Zitat antworten
Alt 08-02-2010, 13:23   #14 (permalink)
Neuer User
 
Registriert seit: Feb 2010
Beiträge: 11
Zitat:
Zitat von slowkey Beitrag anzeigen
Aber kurz noch zu deinem Problem, das Aufhängen wird an der garbage collection und am fl.transitions.Tween, da gibts einige Artikel im Netz bestimmt auch im Forum. Nimm ne andere Tweenengine, TweenLite oder Caurina,
damit wird sich wahrscheinlich das Aufhäng Problem erledigt haben.
Hab ich mir natürlich auch gedacht und habe neben den üblichen Tween dann auch TweenLite benutzt. Beide produzieren die gleichen Hänger. Wenn ich „MC“ anstatt „Images“ nehme das gleiche. Der erste Basis-Script welches die Hänger produziert ist ein ausgetestetes aus dem Web und ich nur leicht an meiner Bedürfnisse angepasst habe. Wirklich ohne murren läuft nur diese Variante. Deswegen ja! Eben nicht viele einzelne Bilder hintereinander laden sondern ein grosses Paket. Aber aus einem externen SWF Images aus der Library ziehen scheint wohl nicht zu gehen! Schade eigentlich. Wäre eine nette Sache gewesen um viele Bilder zu präsentieren... Vielleicht versuche ich’s mal mit einem simplem Javascript! Trozdem Danke für die nette Hilfe!
renderview ist offline   Mit Zitat antworten
Alt 08-02-2010, 13:31   #15 (permalink)
░▒░▒░▒░▒░▒
 
Benutzerbild von slowkey
 
Registriert seit: Oct 2007
Ort: L.E.
Beiträge: 129
Ist schon klar grosses Paket. Du lädts beim Start in einer Schleife alle Bilder aus der XML und speicherst die in einem Array oder Object. Das müsste bei unkommprimierten Bildern in der swf, genauso viel kb sein, die du lädts. Aus dem Arry kannst du dann beliebig auf die Stage oder in deinen Container addChild oder removeChild machen.
Die xml hat den Vorteil, dass du nicht immer deine Libary aus dem Flash kompiliern musst, sondern kannst den Pfad eines anderen Bildes einsetzen oder ändern.
Das ist eigentlich so usus, wenn du nur bilder laden willst.
__________________
scio nescio

Geändert von slowkey (08-02-2010 um 13:34 Uhr)
slowkey ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
extern, nachladen, swf, zugeifen, zugriff

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
Aus Flash auf externes PHP zugreifen Elo ActionScript 2 2 11-04-2008 16:57
auf Variablen und Eigenschaften von MC's zugreifen Skydiver2607 Flash MX 12 29-06-2007 15:58
auf mc's in anderen Bildern zugreifen commanderX66 Flash 4 und Flash 5 2 22-09-2005 09:13
Wie externes JPG Laden und externe TXT laden?? Neobase Flash MX 1 29-04-2004 10:10
Externes MPG Laden??? Markus4711 Flash MX 6 02-12-2003 12:04


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele