Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-04-2005, 22:06   #1 (permalink)
Neuer User
 
Registriert seit: May 2003
Beiträge: 60
Unhappy simple bildergalerie bringt flash fast zum absturz

hallo ich habe eben eine simple, wenn auch ein bischen umständliche bildergalerie gebaut.
eine ganz einfache sache. 4ebenen mit je 1einem mc als bild. ich blende auf frame 1 alle 4 nacheinander aus. auf frame 2 ist die reihenfolge der mcs vertauscht, damit beim ausblenden der eindruck entsteht, es wäre ein endlosdurchlauf. komischerweise, bleibt er auf frame 2 an der letzten ebene hängen, und springt hin und her, statts auf frame 1 zu springen. das ganze führt sogar soweit das mein programm für kurze zeit nicht anspricht.
hier mein script im anhang der file - vielleicht könnt ihr mir ja weiterhelfen!?

//frame1

stop();
var zeit = 15;
onEnterFrame.fade1 = setInterval(function () {
warte0++;
if (warte0 >= zeit) {
mc1._alpha -= 5;}
if (mc1._alpha <= 5) {
warte1++;}
if (warte1 >= zeit) {
mc2._alpha -= 5;}
if (mc2._alpha <= 5) {
warte2++;}
if (warte2 >= zeit) {
mc3._alpha -= 5;}
if (mc3._alpha <= 5) {
warte3++;}
if (warte3 >= zeit) {
gotoAndStop("zwei");}
}, 70);


//frame2

stop();
var zeit = 15;
onEnterFrame.fade2 = setInterval(function () {
mc4b._alpha -= 5;
if (mc4b._alpha <= 5) {
warte4b++;}
if (warte4b >= zeit) {
mc1b._alpha -= 5;}
if (mc1b._alpha <= 5) {
warte1b++;}
if (warte1b >= zeit) {
mc2b._alpha -= 5;}
if (mc2b._alpha <= 5) {
warte2b++;}
if (warte2b >= zeit) {
mc3b._alpha -= 5;}
if (mc3b._alpha <= 5) {
warte3b++;}
if (warte3b >= zeit) {
mc4c._alpha -= 5;}
if (mc4c._alpha <= 5) {
gotoAndStop("eins");}
}, 70);


//zischen den letzten beiden bilder bleibt das programm hängen!
Angehängte Dateien
Dateityp: zip bildergalerie.fla.zip (6,6 KB, 7x aufgerufen)
laikabase ist offline   Mit Zitat antworten
Alt 17-04-2005, 22:08   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Hy,

das liegt wohl daran, dass Du per onEnterFrame
ständig ein setInterval generierst.

Das kann man so nicht machen.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 17-04-2005, 22:11   #3 (permalink)
Neuer User
 
Registriert seit: May 2003
Beiträge: 60
Zitat:
Zitat von thebiz
Hy,

das liegt wohl daran, dass Du per onEnterFrame
ständig ein setInterval generierst.

Das kann man so nicht machen.

...aber selbst wenn ich "onEnterFrame" lösche, funzt es nicht - das problem bleibt bestehen.
laikabase ist offline   Mit Zitat antworten
Alt 17-04-2005, 22:32   #4 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
und so:
PHP-Code:
stop();
var 
zeit 15;
_root.onEnterFrame = function () {
    
warte0++; 
    if (
warte0 >= zeit) {
        
mc1._alpha -= 5;} 
    if (
mc1._alpha <= 5) {
        
warte1++;}
    if (
warte1 >= zeit) {
        
mc2._alpha -= 5;} 
    if (
mc2._alpha <= 5) {
        
warte2++;}
    if (
warte2 >= zeit) {
        
mc3._alpha -= 5;}
    if (
mc3._alpha <= 5) {
        
warte3++;}
    if (
warte3 >= zeit) {
        
delete _root.onEnterFrame;
        
gotoAndStop("zwei");
    };

__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 17-04-2005, 22:49   #5 (permalink)
Neuer User
 
Registriert seit: May 2003
Beiträge: 60
funzt leider auch nicht - zudem brauche ich ja meinen setInterval befehl um festzulegen wie schnell oder langsam er meine bilder überblendet.
laikabase ist offline   Mit Zitat antworten
Alt 18-04-2005, 07:35   #6 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
o.k.
Dann Vergiss deine Frame 2. und probiermal so:
PHP-Code:
stop();
var 
intervall1;
intervall1 setInterval(fade15000);
var 
actMc 1;

var 
speed 5// alpha speed
var intervall 5000// intervall speed in ms.

function fade1() {
    
_root["mc"+_root.actMc].onEnterFrame = function() {
        if(
this._alpha 0) {
            
this._alpha -= _root.speed;
        }else{
            
_root.actMc ++;
            
delete this.onEnterFrame;
            if(
_root.actMc 4) {
                
clearInterval(intervall1)
                
_root.actMc 4;
                
intervall2 setInterval(fade2_root.intervall);
            }
        }
    }
}

function 
fade2() {
    
_root["mc"+_root.actMc].onEnterFrame = function() {
        if(
this._alpha 100) {
            
this._alpha += _root.speed;
        }else{
            
_root.actMc --;
            
delete this.onEnterFrame;
            if(
_root.actMc ) {
                
clearInterval(intervall2)
                
_root.actMc 1;
                
intervall1 setInterval(fade1_root.intervall);
            }
        }
    }

und wie gesagt losch dein Frame 2.
Viel Spaß..
__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 18-04-2005, 14:29   #7 (permalink)
Neuer User
 
Registriert seit: May 2003
Beiträge: 60
jo, erstmal 1000dank für dein script xbass - sieht schon um 200% eleganter aus als mein versuch.
2 probleme sehe ich dennoch:
1. var intervall = 5000; // intervall speed in ms. bleibt praktisch wirkungsloas, ob ich nun 2 oder 200000 eingebe, die intervalle bleiben von der selben länge.

was würdet ihr/du vorschlagen um die bildergalerie als rundlauf anzulegen?
in dieser variante blendet das letzte bild aus und das wars. ich möchte aber gerne das dann das erste bild wieder eiblendet, das also der eindruck ensteht, dass es eine endlos galerie ist - hat jemand eine idee?
laikabase ist offline   Mit Zitat antworten
Alt 18-04-2005, 14:36   #8 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
Zitat:
Zitat von laikabase
1. var intervall = 5000; // intervall speed in ms. bleibt praktisch wirkungsloas,
kleine Änderung..
PHP-Code:
stop();
var 
actMc 1;
var 
speed 5;
var 
intervall 10000;
var 
intervall1;
intervall1 setInterval(fade1intervall);

function 
fade1() {
    
_root["mc"+_root.actMc].onEnterFrame = function() {
        if(
this._alpha 0) {
            
this._alpha -= _root.speed;
        }else{
            
_root.actMc ++;
            
delete this.onEnterFrame;
            if(
_root.actMc 4) {
                
clearInterval(intervall1)
                
_root.actMc 4;
                
intervall2 setInterval(fade2_root.intervall);
            }
        }
    }
}

function 
fade2() {
    
_root["mc"+_root.actMc].onEnterFrame = function() {
        if(
this._alpha 100) {
            
this._alpha += _root.speed;
        }else{
            
_root.actMc --;
            
delete this.onEnterFrame;
            if(
_root.actMc ) {
                
clearInterval(intervall2)
                
_root.actMc 1;
                
intervall1 setInterval(fade1_root.intervall);
            }
        }
    }

__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 18-04-2005, 14:50   #9 (permalink)
Neuer User
 
Registriert seit: May 2003
Beiträge: 60
alles klar xbass, so funzt es mit dem interval, vielen dank dafür. wahrscheinlich werde ich, doch noch eine 2 frame lösung von dem script versuchen, wo die bilder in umgekehrter reihenfolge liegen, um eine endlosschleife zu erzeugen.
grüsse nach hannover (hab mal einige jahre in hildesheim gelebt)

Geändert von laikabase (18-04-2005 um 14:51 Uhr)
laikabase 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 06:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele