Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-10-2009, 16:20   #1 (permalink)
addGrips(me);
 
Benutzerbild von Lutzovic
 
Registriert seit: Jun 2004
Ort: Berlin
Beiträge: 33
AS3: Variable von contentLoaderInfo-Complete an Funktion übergeben

Hi Flashs,

Ich versuche mich gerade zum ersten mal in AS3 (tock tock),
klappt schon immer besser aber ich checke gerade einen speziellen Part nicht.

Beispiel ist eine Bildergalerie, diese erstellt per for schleife einzelne Movieclips nacheinander aus der Bibliothek (mc fotobox) in einen container auf der Bühne.
Das funktioniert alles auch mit dem laden wunderbar.

mein Problem:

Wie kann ich an die Funktion die von folgendem code ausgelöst wird: (bsp.: 'done')
Code:
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
die erstellte Instanz übergeben?

so sieht der ganze Abschnitt aus:
Ich will in Funktion 'done' später eine Skript packen das mir die Bilder an die fotobox Instanz anpasst. So funktioniert das nur mit dem letzten.
Code:
//AS3:
for (i = 0; i < bildanzahl; i++)
{
	var myfotobox:fotobox = new fotobox();

	myfotobox.name = "Fotobox"+i;
	trace ("myfotobox : "+myfotobox.name);

	myfotobox.x = raster;
	raster += rastermas;
	container.addChild(myfotobox);
	
	//Bild wird hineingeladen:
	var request:URLRequest = new URLRequest(Bildordner+Fotoarray[i]);
	var loader:Loader = new Loader()
	loader.load(request);
	loader.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
	myfotobox.foto.addChild(loader);
	
	}


function done(event:Event):void {
	trace("loaderCompleteHandler 'done' ausgeführt");
    	trace(event);
	//wie kann ich hier den zu ladenden Movieclip ansprechen?
	//hier soll per Skript die jeweilige Instanz Größe angepasst werden
	}
in AS2 konnte ich das doch recht easy mit der MC variable?
Code:
//AS2:
mclListener.onLoadInit = function(mc:MovieClip) {
	trace (mc); // instanzname, Movieclip
	}
Habe schon mit loader.content.name rumgefummelt aber nix besonders erreicht.
Ich denke mal das gibt es einen easy kniff oder?

danke schon mal
Lutz
Lutzovic ist offline   Mit Zitat antworten
Alt 28-10-2009, 16:22   #2 (permalink)
Trennschleifer
 
Benutzerbild von bobo_k1
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 1.282
Zitat:
Zitat von Lutzovic Beitrag anzeigen


function done(event:Event):void {
trace("loaderCompleteHandler 'done' ausgeführt");
trace(event.currentTarget.width);
trace(event.currentTarget.height);
}
[/CODE]
so..
__________________
Es gibt nur zwei Arten von Menschen die Hawaiihemden tragen: Schwuchteln und dicke fette Partylöwen. Und du siehst nicht aus wie ein dicker fetter Partylöwe!" - Homer J. Simpson
bobo_k1 ist offline   Mit Zitat antworten
Alt 28-10-2009, 16:24   #3 (permalink)
addGrips(me);
 
Benutzerbild von Lutzovic
 
Registriert seit: Jun 2004
Ort: Berlin
Beiträge: 33
Cool bobo_k1,

teste ich direkt mal, klingt aber schon sehr einleuchtend

Danke.
Lutzovic ist offline   Mit Zitat antworten
Alt 28-10-2009, 16:58   #4 (permalink)
addGrips(me);
 
Benutzerbild von Lutzovic
 
Registriert seit: Jun 2004
Ort: Berlin
Beiträge: 33
Auslesen hat gut funktioniert, nur verändern nicht.
Code:
function done(event:Event):void {
		trace(event.currentTarget.width);
		trace(event.currentTarget.height);
		event.currentTarget.width = 400;
		event.currentTarget.height = 300;
		}
currentTarget und target sind beide schreibgeschützt, ich bekomme folgenden Fehler:
Zitat:
ReferenceError: Error #1074: Unzulässiger Schreibvorgang in schreibgeschützte Eigenschaft width in flash.display.LoaderInfo
Wie kann ich die Eigenschaften der Instanz in meiner Funktion verändern?

Grüße
Lutzovic ist offline   Mit Zitat antworten
Alt 28-10-2009, 17:17   #5 (permalink)
Trennschleifer
 
Benutzerbild von bobo_k1
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 1.282
scaleX und scaleY
__________________
Es gibt nur zwei Arten von Menschen die Hawaiihemden tragen: Schwuchteln und dicke fette Partylöwen. Und du siehst nicht aus wie ein dicker fetter Partylöwe!" - Homer J. Simpson
bobo_k1 ist offline   Mit Zitat antworten
Alt 28-10-2009, 17:53   #6 (permalink)
addGrips(me);
 
Benutzerbild von Lutzovic
 
Registriert seit: Jun 2004
Ort: Berlin
Beiträge: 33
Danke Bobo k1,

muss mir das doch nochmal genauer anschauen, den auch scaleX / Y liefert einen Fehler:
Zitat:
ReferenceError: Error #1056: Eigenschaft scaleY in flash.display.LoaderInfo kann nicht erstellt werden.
Code:
function done(event:Event):void {

	trace(event.currentTarget.height);
	var faktor:Number = (bildhoehe/event.currentTarget.height);
	trace("Faktor : "+faktor);
	event.currentTarget.scaleY = faktor;
	event.currentTarget.scaleX = faktor;
	
	// auch mal zum test, geht aber auch nicht:
	/*var testsprite:Sprite = event.currentTarget as Sprite;
	trace("Sprite : "+testsprite.height);
	testsprite.scaleY = faktor;
	testsprite.scaleX = faktor;*/
	
	}
Bestimmt noch ein Fehler drin den ich AS3 mäsig noch nicht beachte.

Grüße
Lutz
Lutzovic ist offline   Mit Zitat antworten
Alt 28-10-2009, 19:14   #7 (permalink)
Trennschleifer
 
Benutzerbild von bobo_k1
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 1.282
du musst die content-Property der contentLoaderInfo ansprechen - hier gibts mehr infos flash.display.Loader (ActionScript 3.0)
__________________
Es gibt nur zwei Arten von Menschen die Hawaiihemden tragen: Schwuchteln und dicke fette Partylöwen. Und du siehst nicht aus wie ein dicker fetter Partylöwe!" - Homer J. Simpson
bobo_k1 ist offline   Mit Zitat antworten
Alt 28-10-2009, 19:17   #8 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
PHP-Code:
loader.content.height faktor;
loader.content.width faktor
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 29-10-2009, 20:43   #9 (permalink)
addGrips(me);
 
Benutzerbild von Lutzovic
 
Registriert seit: Jun 2004
Ort: Berlin
Beiträge: 33
Zitat:
Zitat von bobo_k1 Beitrag anzeigen
du musst die content-Property der contentLoaderInfo ansprechen - hier gibts mehr infos flash.display.Loader (ActionScript 3.0)
Danke euch beiden,

ich habe es jetzt gepackt,
hatte nach der erneuten loader lektüre erst gecheckt das es neben loader.content auch loaderInfo.content gibt, bobo hatte es ja schon geschrieben.

folgendermasen sieht es jetzt aus und funktioniert:
Code:
function done(event:Event):void {

	//Bild wird auf Containergröße gebracht:
	var faktor:Number = (bildhoehe/event.currentTarget.height);
	event.target.loader.scaleX = faktor; 
	event.target.loader.scaleY = faktor;
	
	//hiermit wird zentriert:
	event.target.loader.x = (rastermas/2)-((event.target.width*faktor)/2);
	
	}
Vielen Dank für die Hilfe
Lutzovic ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
contentloaderinfo, event.complete, instanz, variablen

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
Variable aus Complete Listener übergeben / speichern markox ActionScript 3 7 07-07-2008 16:48
variable an funktion übergeben? phase ActionScript 2 2 13-11-2006 12:19
funktion als variable übergeben TOAOTC ActionScript 1 4 09-12-2004 14:56
variable an funktion übergeben vaoscv ActionScript 1 5 12-09-2004 19:26
Variable an Funktion übergeben medic ActionScript 1 11 01-01-2003 16:12


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele