Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-06-2007, 13:07   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
Array für Buttons und Array für Movies verknüpfen

Hallo!

Ich habe eine Reihe Mc's als Buttons angelegt und ihnen jeweils einen Instanznamen gegeben. Die Instanznamen habe ich in einem Array sub_buttons gespeichert.

Außerdem habe ich die swfs, die geladen werden sollen, wenn auf einen button geklickt wird, auch in ein Array gespeichert, "movies".

Nun möchte ich, dass wenn auf sub_buttons[0] geklickt wird, auch der movie[o] kommt...

Ich hab dazu folgende schleife geschrieben:

PHP-Code:
var sub_buttons:Array = [bgp_mc,bs_mc,b_mc,hcrb_mc,hc_mc,lp_mc,n_mc,os_mc,ec_mc,zlc_mc,pb_mc,se_mc,vde_mc,ven_mc,trit_mc,nbc_mc,
rfas_mc,hitov_mc,dame_mc,barb_mc,gb_mc,dh_mc,kh_mc,le_mc,fe_mc];

var 
movies:Array = ["bgp.swf","bsch.swf","bulg.swf","havrb.swf","hav.swf","lovep.swf","next.swf","oldsch.swf","expcub.swf",
                    
"zaplakat.swf""popeye.swf","stadt.swf","vd.swf","vgl.swf","tritonus.swf","napredak.swf","runforashot.swf",
                    
"2in1.swf""4dame.swf","barbih.swf","brego.swf","domhit.swf","kafansk.swf","limo.swf","saft.swf"];
                    
                    
function 
movieLoad(){
    for(
i=0i<sub_buttons.lengthi++){
    
sub_buttons[i].onRelease=function(){
        
this._parent.screen_mc.loadMovie(movies[i]);
        }
    }

So funkt das ganze aber nicht. Kann mir bitte jemand sagen, was ich da falsch mache?

Danke im Voraus für jeden Tipp!!!
gmadesign ist offline   Mit Zitat antworten
Alt 06-06-2007, 13:10   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Schleifenzähler dem Button übergeben:
PHP-Code:
for(i=0i<sub_buttons.lengthi++){
sub_buttons[i].id 
    sub_buttons
[i].onRelease=function(){ 
        
this._parent.screen_mc.loadMovie(movies[this.id]); 
        } 

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 06-06-2007, 13:12   #3 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
PHP-Code:
function movieLoad(){
    var 
len sub_buttons.length
    for(var 
i=0leni++) {
        
sub_buttons[i].ID i
        
sub_buttons[i].onRelease=function(){ 
            
this._parent.screen_mc.loadMovie(movies[this.ID]); 
        }; 
    } 

sonar ist offline   Mit Zitat antworten
Alt 06-06-2007, 13:22   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
Tausend Dank für eure prompten Antworten...

Jetzt hab ich noch eine Frage.

Und zwar bin ich grade draufgekommen, dass ich die swfs ja in einen unterordner geschmissen habe...

Damit ich jetzt nicht jeden Pfad ändern muss, wie mach ich das direkt?

PHP-Code:

this
._parent._parent.screen_mc.loadMovie(portfolio/movies[this.id]); 
So gehts ja wohl nicht

Danke nochmal!
gmadesign ist offline   Mit Zitat antworten
Alt 06-06-2007, 13:30   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
this._parent._parent.screen_mc.loadMovie("portfolio/"+movies[this.id]); 
...falls portfolio der Ordner und keine Variable ist.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 06-06-2007, 13:58   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
ja, es war ein ordner, danke.

Jetzt hab ich das versucht, es funkt aber mit meinen swfs nicht. Ich hab dann eine 4 kb große test-swf in das array aufgenommen, mit der funkt es....

Bei der anderen kommt aber nicht einmal der Preloader, aber auch keine Fehlermeldung...

Ich hab das mal in ein Archiv gepackt, kannst du dir das vielleicht mal ansehen?

Tausend dank!!

download
gmadesign ist offline   Mit Zitat antworten
Alt 06-06-2007, 14:42   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Liegt an deinem Preloader. Nimm da mal nicht _root:
PHP-Code:
stop();
//stoppen.
checkIt = function () {

    
//Funktion festlegen.
    
var loaded this.getBytesLoaded();
    
//geladene Bytes als Variable speichern.
    
var total this.getBytesTotal();
    
//gesamte Bytes als Variables speichern.
    
var Math.round((loaded/total)*100);
    
//Prozent ausrechnen.
    
prozent.text p+" %";
    
//Textfelder Werte zuweisen
    
if (loaded>=total && loaded>12) {
        
//wenn geladene Bytes größer,gleich gesamte Bytes...
        
clearInterval(ID);
        
//...lösche Interval(Aus Performancegründen Wichtig!)...
        
this.nextFrame();
        
//...nächster Frame
    
}
};
var 
ID:Number setInterval(this,"checkIt"10);
//Interval festlegen. 
Alternativ _lockroot = true für deinen "screen_mc".
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 07-06-2007, 14:33   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
Die Lösung mit _lockroot war auf jeden fall vorteilhafter, da ich ja mehrere swfs lade...

Jetzt hab ich noch ne Maske über die Buttons gesetzt und will dass darunter rauf und runtergescrollt werden kann...

Das der buttons_mc soll aber natürlich nicht ins unendliche scrollen, sondern an nem Punkt stehen bleiben, wo alles sichtbar ist...

dazu verwende ich folgendes Skript:

PHP-Code:
screen_mc._lockroot=true;
screen_mc.loadMovie("print_portfolio/bgp.swf");

down_mc.onRollOver = function(){
    var 
ep:Number = -50;
    while(
buttons_mc._y >= ep){
        
this.onEnterFrame = function(){
        
buttons_mc._y-=3;
        }
    }
}
up_mc.onRollOver = function(){
        var 
sp:Number 10;
        while(
buttons_mc._y <= sp){
    
this.onEnterFrame = function(){
        
    
buttons_mc._y+=3;
        }
    }

Mit dem Skript hängt sich jedoch der Flash-Player auf... und die Buttons reagieren gar nicht... Liegt das daran, dass ich nicht delete? Und wo müsste das delete.onEnterFrame stehen?

Tausend dank fürs Dazulernen beim Frager!!!!
gmadesign ist offline   Mit Zitat antworten
Alt 07-06-2007, 14:35   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Oh Gott... Nimm bloß das while raus und ersetz das durch if.
Dann noch jeweils
PHP-Code:
else() delete this.onEnterFrame 
und dann war's das hoffentlich.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 07-06-2007, 15:09   #10 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 642
tausend dank!
gmadesign 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 10:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele