Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-12-2006, 10:16   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 8
Button im "Attachten Movie" ansprechen

Ich habe folgendes Problem: Nach dem man auf den "Button" (kreation_mc) klickt wechselt er die Position und es blendet sich das Menu (submenu_mc) ein. In dem eingeblendeten Menu befinden sich Schaltflächen (book_btn) die ich ansprechen möchte um verschiedene Inhalte (externe swfs) in meine Website zu laden (inkl. Preloader). Habe ich nur einen falschen Pfad verwendet? Würde mich freuen wenn mir jemand weiterhilft!
Schon mal besten Dank!
Dennis

Folgendes Script liegt im ersten Schlüsselbild auf meiner Hauptzeitleiste:
PHP-Code:
function Tween(objpropfuncbeginfinishdurationuseSeconds) {
    
/* omitted to save space. */
}
_root.kreation_mc.onRelease = function() {
    if (
kreation_mc._y == 438) {
        new 
mx.transitions.Tween(kreation_mc"_y"mx.transitions.easing.Elastic.easeOut4384192true);
        
_root.position_mc.attachMovie("submenu_mc""submenu_mc"1, {_x:0_y:0});
        
_root.position_mc.submenu_mc._alpha 0;
        
_root.position_mc.submenu_mc.onEnterFrame = function() {
            if (
this._alpha<100) {
                
this._alpha += 4;
            } else {
                
delete this.onEnterFrame;
            }
        };
    } else if (
kreation_mc._y == 419) {
        new 
mx.transitions.Tween(kreation_mc"_y"mx.transitions.easing.Elastic.easeOut4194382true);
    }
};

// Content Laden

_root.balken_mc._visible false;

_root.position_mc.submenu_mc.book_btn.onRelease = function(){
//Container für den externen Film:
_root.createEmptyMovieClip("inhalt_mc"0);
//Für Flash MX 2004 ist der geladene Film das Wurzelelment
_root.inhalt_mc._lockroot true;
_root.balken_mc._visible true;
//Externen Film laden
_root.inhalt_mc.loadMovie("lilanga.swf");
var 
kbgeladen_num:Number;
var 
kbgesamt_num:Number;
//Regelmäßiger Funktionsaufruf
var id setInterval(pruefen100);
function 
pruefen() {
    
//Geladene Bytes, umgewandelt in Kilobyte
    
kbgesamt_num Math.round(_root.inhalt_mc.getBytesTotal() / 1024);
    
kbgesamt_str kbgesamt_num.toString();
    
kbgeladen_num Math.round(_root.inhalt_mc.getBytesLoaded() / 1024);
    
kbgeladen_str kbgeladen_num.toString();
    
balken_mc._width Math.round((kbgeladen_num kbgesamt_num) * 200);
    if (
kbgeladen_num && kbgeladen_num == kbgesamt_num) {
        
clearInterval(id);
  
_root.balken_mc._visible false;
    }
}


dennis p. ist offline   Mit Zitat antworten
Alt 12-12-2006, 11:48   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Leicht wirr, aber das onRelease() für deinen book_btn gehört natürlich mit ins onRelease() vom kreation_mc - also nachdem der MC inkl. Button überhaupt attached wurde.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-12-2006, 12:43   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 8
Das ging schnell!

Meinst du das ich das Script direkt auf den Button im attachten MovieClip(submenu_mc) legen soll?

Falls ja: Das funktioniert leider nicht. Auch dann wird nach einem Klick ins menu die sog. lilanga.swf nicht geladen.
dennis p. ist offline   Mit Zitat antworten
Alt 12-12-2006, 12:52   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Meinte das so irgendwie:
PHP-Code:
function Tween(objpropfuncbeginfinishdurationuseSeconds) {
    
/* omitted to save space. */
}
_root.kreation_mc.onRelease = function() {
    if (
this._y == 438) {
        new 
mx.transitions.Tween(kreation_mc"_y"mx.transitions.easing.Elastic.easeOut4384192true);
        
_root.position_mc.attachMovie("submenu_mc""submenu_mc"1, {_x:0_y:0});
        
_root.position_mc.submenu_mc._alpha 0;
        
_root.position_mc.submenu_mc.onEnterFrame = function() {
            if (
this._alpha<100) {
                
this._alpha += 4;
            } else {
                
delete this.onEnterFrame;
                
this.book_btn.onRelease laden;
            }
        };
    } else if (
kreation_mc._y == 419) {
        new 
mx.transitions.Tween(kreation_mc"_y"mx.transitions.easing.Elastic.easeOut4194382true);
    }
};
// Content Laden 
_root.balken_mc._visible false;
function 
laden() {
    
//Container für den externen Film: 
    
_root.createEmptyMovieClip("inhalt_mc"0);
    
//Für Flash MX 2004 ist der geladene Film das Wurzelelment 
    
_root.inhalt_mc._lockroot true;
    
_root.balken_mc._visible true;
    
//Externen Film laden 
    
_root.inhalt_mc.loadMovie("lilanga.swf");
    
//Regelmäßiger Funktionsaufruf 
    
var id setInterval(pruefen100);
}
function 
pruefen() {
    
//Geladene Bytes, umgewandelt in Kilobyte 
    
kbgesamt_num Math.round(_root.inhalt_mc.getBytesTotal()/1024) || 0;
    
kbgesamt_str kbgesamt_num.toString();
    
kbgeladen_num Math.round(_root.inhalt_mc.getBytesLoaded()/1024) || 0;
    
kbgeladen_str kbgeladen_num.toString();
    
balken_mc._width Math.round((kbgeladen_num/kbgesamt_num)*200);
    if (
kbgeladen_num>&& kbgeladen_num == kbgesamt_num) {
        
clearInterval(id);
        
_root.balken_mc._visible false;
    }

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-12-2006, 13:20   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 8
Super" Besten Dank! Jetzt funktioniert es!

Und wenn ich jetzt weitere Menupunkte einsetzen möchte? Füge ich dann einfach neue Funktionen hinzu? Es gibt doch sicherlich eine Möglichkeit das zu vereinfachen?

Zur Zeit stelle ich mir das ungefähr so vor... nur ist das sicher nicht gerade die eleganteste Variante:
PHP-Code:

function Tween(objpropfuncbeginfinishdurationuseSeconds) { 
    
/* omitted to save space. */ 

_root.kreation_mc.onRelease = function() { 
    if (
this._y == 438) { 
        new 
mx.transitions.Tween(kreation_mc"_y"mx.transitions.easing.Elastic.easeOut4384192true); 
        
_root.position_mc.attachMovie("submenu_mc""submenu_mc"1, {_x:0_y:0}); 
        
_root.position_mc.submenu_mc._alpha 0
        
_root.position_mc.submenu_mc.onEnterFrame = function() { 
            if (
this._alpha<100) { 
                
this._alpha += 4
            } else { 
                
delete this.onEnterFrame
                
this.book_btn.onRelease laden;
 
this.02_btn.onRelease laden1;
 
this.03_btn.onRelease laden2;  
          } 
        }; 
    } else if (
kreation_mc._y == 419) { 
        new 
mx.transitions.Tween(kreation_mc"_y"mx.transitions.easing.Elastic.easeOut4194382true); 
    } 
}; 
// Content Laden  
_root.balken_mc._visible false
function 
laden() { 
    
//Container für den externen Film:  
    
_root.createEmptyMovieClip("inhalt_mc"0); 
    
//Für Flash MX 2004 ist der geladene Film das Wurzelelment  
    
_root.inhalt_mc._lockroot true
    
_root.balken_mc._visible true
    
//Externen Film laden  
    
_root.inhalt_mc.loadMovie("lilanga.swf"); 
    
//Regelmäßiger Funktionsaufruf  
    
var id setInterval(pruefen100); 


function 
laden1() {...

}

function 
laden2() {...

}

function 
pruefen() { 
    
//Geladene Bytes, umgewandelt in Kilobyte  
    
kbgesamt_num Math.round(_root.inhalt_mc.getBytesTotal()/1024) || 0
    
kbgesamt_str kbgesamt_num.toString(); 
    
kbgeladen_num Math.round(_root.inhalt_mc.getBytesLoaded()/1024) || 0
    
kbgeladen_str kbgeladen_num.toString(); 
    
balken_mc._width Math.round((kbgeladen_num/kbgesamt_num)*200); 
    if (
kbgeladen_num>&& kbgeladen_num == kbgesamt_num) { 
        
clearInterval(id); 
        
_root.balken_mc._visible false
    } 

dennis p. ist offline   Mit Zitat antworten
Alt 12-12-2006, 13:26   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Nee, mach das mal so hier:
PHP-Code:
this.book_btn.onRelease = function() {
    
laden("lilanga.swf");
};
function 
laden(film) {
    
//Container für den externen Film: 
    
_root.createEmptyMovieClip("inhalt_mc"0);
    
//Für Flash MX 2004 ist der geladene Film das Wurzelelment 
    
_root.inhalt_mc._lockroot true;
    
_root.balken_mc._visible true;
    
//Externen Film laden 
    
_root.inhalt_mc.loadMovie(film);
    
//Regelmäßiger Funktionsaufruf 
    
var id setInterval(pruefen100);

Also übergib den zuladenen Film mit an die Funktion.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-12-2006, 13:39   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 8
Ahhh... Ok! Dann muss ich nur eine Liste mit allen Buttons machen:

PHP-Code:
this.01_btn.onRelease = function() { 
    
laden("inhalt01.swf"); 
this.02_btn.onRelease = function() { 
    
laden("inhalt02.swf"); 
u.s.w.

Werden denn die "alten" swfs ausgetauscht, wenn man auf einen neuen Button klickt? Oder überlagern die sich wenn man mehrere Buttons clickt?
dennis p. ist offline   Mit Zitat antworten
Alt 12-12-2006, 14:00   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Probier's doch einfach aus.

Durch
PHP-Code:
_root.createEmptyMovieClip("inhalt_mc"0); 
wird ja der MC eh immer wieder neu erstellt. Ist zwar unnötig aber auch egal. Alleine die neue Erstellung kickt den alten Inhalt schon raus. Das würde aber auch durch laden eines neuen Films passieren.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-12-2006, 14:03   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 8
Aller klar! Werds mal probieren!
Noch mal vielen Dank! Hast mir super geholfen!!!
dennis p. ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele