| |||||||
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: Jul 2009
Beiträge: 152
| Externe SWF Variable verändern
Hallo zusammen, ich habe nun folgendes Problem mit AS3 ich will einen externen movie einbetten und dann variablen im externen ändern vom hauptfilm aus. Grund: es sind individuelle Werte in Variablen gespeichert, die ich im externen Movie benötige. Nun habe ich nicht gewusst wie ich das genau mache und hab somit eine testdatei erstellt die so aussieht: Code: var laden:Loader = new Loader();
laden.x = 0;
laden.y = 0;
addChild(laden);
var url:URLRequest = new URLRequest();
url.url = "test4.swf";
laden.load(url);
addEventListener(MouseEvent.CLICK, fertig);
function fertig(evt:MouseEvent){
if (laden.content != null){
laden.content.nextFrame();
}
} kann mir bitte jemand sagen wie ich var aus der test4.swf lese und auch verändere, damit ich sie dort anwenden kann. das wäre super! Vielen Dank für die Bemühungen! |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Dec 2005
Beiträge: 99
|
var loader : Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.CO MPLETE, onComplete); loader.load(new URLRequest("test4.swf"); function onComplete(event : Event) : void { trace(loader.content.var); }
__________________ http://blog.johannes-hodde.com |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jul 2009
Beiträge: 152
|
ich sehe anhand deiner antwort leider nicht was an meinem script falsch sein soll. hier ist nun mal das original script Code: var uss:String = new String();
uss = "3844893";
var einstellungen:Loader = new Loader();
var url:URLRequest = new URLRequest();
url.url = "swfIN/einstellungAnfang.swf";
einstellungen.x = einstellungen.y = 0;
einstellungen.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, fortschritt, false, 0, true);
einstellungen.contentLoaderInfo.addEventListener(Event.COMPLETE, fertig, false, 0, true);
einstellungen.load(url);
LoadInfo.addChild(einstellungen);
/* Loader for copy */
var Loaderhintergrund:MovieClip = new LoaderHintergrund();
addChild(Loaderhintergrund);
var proz_text:TextField = new TextField();
Loaderhintergrund.addChild(proz_text);
var proz_text2:TextField = new TextField();
Loaderhintergrund.addChild(proz_text2);
var Loaderbalken:MovieClip = new LoaderBalken();
Loaderhintergrund.addChild(Loaderbalken);
function fortschritt(evt:ProgressEvent):void{
var prozent:int = 100 * evt.bytesLoaded / evt.bytesTotal;
Loaderbalken.width = prozent*6;
proz_text.text = prozent.toString();
}
function fertig(evt:Event):void{
Loaderhintergrund.removeChild(proz_text);
Loaderhintergrund.removeChild(proz_text2);
Loaderhintergrund.removeChild(Loaderbalken);
removeChild(Loaderhintergrund);
if (einstellungen.content != null) {
trace("asdf");
einstellungen.content.userID = uss;
}
} was ist an dem code falsch, dass folgede meldung kommt: 1119: Zugriff auf eine möglicherweise nicht definierte Eigenschaft userID über einen Verweis mit statischem Typ flash.display: DisplayObject Die Variable ist in der externen swf so definiert: var userID:String = new String(); Vielen Dank! Geändert von hothead89 (23-07-2009 um 22:19 Uhr) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Dec 2005
Beiträge: 99
|
Probier mal vorher zu MovieClip zu casten. MovieClip(content).userId. Aber sauberer wäre es wenn die Dokumentenklasse der swf die Du dir holst ein Interface implementiert zu dem Du dann casten kannst: interface IUser { function getUserId() : String; } und dann sowas: onComplete(e : Event) { var user : IUser = IUser(loader.content); if(null != user) trace(user.getUserId()); }
__________________ http://blog.johannes-hodde.com Geändert von JoH (23-07-2009 um 22:39 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jul 2009
Beiträge: 152
|
hallo nochmal erstmal schon danke für die hilfe ich werde das mit der dokuklasse gleich probieren aber ich habe hier noch ein beispiel welches funktioniert, aber ich erkenne den unterschied zu meinem script nicht. findet von euch den vllt jemand? Code: var laden:Loader = new Loader();
laden.x = 38;
laden.y = 90;
laden.contentLoaderInfo.addEventListener(Event.COMPLETE, geladen);
addChild(laden);
var url:URLRequest = new URLRequest();
function geladen(evt:Event) {
trace("Externer Film wurde geladen!");
trace(evt.target.content);
}
produktwahl1_btn.addEventListener(MouseEvent.CLICK, ladeExterneFilme);
produktwahl2_btn.addEventListener(MouseEvent.CLICK, ladeExterneFilme);
produktwahl3_btn.addEventListener(MouseEvent.CLICK, ladeExterneFilme);
function ladeExterneFilme(evt:MouseEvent) {
switch (evt.target.name) {
case "produktwahl1_btn" :
url.url = "shirt.swf";
break;
case "produktwahl2_btn" :
url.url = "langarm.swf";
break;
case "produktwahl3_btn" :
url.url = "hose.swf";
break;
}
laden.load(url);
}
ansicht_btn.addEventListener(MouseEvent.CLICK, wechsleAnsicht);
function wechsleAnsicht(evt:MouseEvent) {
if (laden.content != null) {
laden.content.waslos = "waslos";
}
} if (laden.content != null) { laden.content.waslos = "waslos"; } das entscheidende. worum es geht. und wenn ich das teste und die variable in der anderen swf dekariere und in einem textfeld anzeigen lasse funktioniert es. aber warum da und bei meinem nicht? (dieses script stammt aus den buch das praxisbuch actions script 3) |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| externe swf, variablen, verändern, zugreifen |
| Themen-Optionen | |
| Ansicht | |
| |