Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-07-2007, 18:08   #1 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
onEnterFrame event simulieren

heyji,

ich will mit onentzerframe eine funktion für einen bestimmten button aus dem array aufrufen.
ich habe dabei in der handle_menu funktion die button instanz geändert:
alt :
PHP-Code:
if (buttons[i]== this) { 
dabei konnte ich am ende einen button per onEnterFrame initialisieren:
PHP-Code:
buttons[0].onEnterFrame=handle_menu 
neu :
PHP-Code:
if (buttons[i].boton_btn== this
wenn ich es nun hier mit versuche geht garnix mehr und sitz schon seit geraumer zeit daran.
PHP-Code:
buttons[0].boton_btnon.EnterFrame=handle_menu 

das ganze script:
PHP-Code:
import mx.transitions.Tween;
import mx.transitions.easing.*;

buttons = new Array(s1_btns2_btns3_btns4_btn);

var 
space:Number = -20;
var 
ancho:Number 100;
var 
zellenhöhe=300
*
var 
oldX:Number;
var 
newX:Number;
var 
oldW:Number;
var 
newW:Number;


handle_menu = function () {
    
delete buttons[0].boton_btn.onEnterFrame
    newX 
0;
    for (var 
i:Number 0buttons.lengthi++) {
        
oldX buttons[i]._x;
        new 
Tween(buttons[i], "_x"Strong.easeOutoldXnewX1true);
        if (
buttons[i].boton_btn== this) {
            
newX += (zellenhöhe space);
            
newW =zellenhöhe
        
} else {
            
newX += (ancho space);
            
newW ancho;
        }
        
oldW buttons[i].mascara_mc._width;
        new 
Tween(buttons[i].mascara_mc"_width"Strong.easeOutoldWnewW1true);
    }
};

button_status = function (val:Boolean) {
    for (var 
i:Number 0buttons.lengthi++) {
        
buttons[i].enabled val;
    }
};

var 
intervalId:Number;

var 
hit_area:Boolean false;
function 
executeCallback():Void {
    if (!
this.hitTest(_root._xmouse_root._ymouse)) {
        if (!
hit_area) {
            
ancho 100;
            
hit_area true;
            
button_status(false);
        }
    } else {
        if (
hit_area) {
            
ancho =100;
            
hit_area false;
            
button_status(true);
        }
    }
}
intervalId setInterval(this"executeCallback"10);
//  *********************************************************************
//  Event Funtion für button
//  *********************************************************************
for (var i:Number 0buttons.lengthi++) {
    
buttons[i].boton_btn.onPress handle_menu;
}
//  *********************************************************************
//  Menü initieren
buttons[i].boton_btn.onEnterFrame=handle_menu 
__________________
lieben Gruß

Daniel

/////////////////////////////////////////////////////
________________________________________
MAKAKEE MONKEY ILUSIGN
Illustrations, Shirtsign and Art
________________________________________
dabinjo ist offline   Mit Zitat antworten
Alt 23-07-2007, 18:47   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
sind deine buttons buttons oder mc's mit der funktionalität von buttons?
weil die original-buttons haben kein enterFrame.

also entweder keine original-buttons mehr benützen
oder notlösung packe jeden button in ein mc, dem kannst du dann das onEnterFrame geben.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (23-07-2007 um 18:48 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 24-07-2007, 08:25   #3 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
die buttons incl. der weiternen instanz, boton_btnon, sind mc's mit instanzennamen. mit " buttons" haben ich noch nie gearbeitet.
__________________
lieben Gruß

Daniel

/////////////////////////////////////////////////////
________________________________________
MAKAKEE MONKEY ILUSIGN
Illustrations, Shirtsign and Art
________________________________________
dabinjo ist offline   Mit Zitat antworten
Alt 24-07-2007, 19:30   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ok
(sorry, konnte deinen script natürlich nur überlesen und bin nicht so drinn wie du, da du es ja gemacht hast und die fla zum testen besitzt)

prinzipiel:
xx.onEnterFrame ist eine speicherstelle, ein zeiger auf eine funktion. wenn der zeiger auf null zeigt, dann nicht; andernfalls wird die angegebene funktion ständig wiederholt. ein starten ist somit nicht nötig.

das funktoniert ja auch, wie du schreibst:
buttons[0].onEnterFrame=handle_menu;

das nicht:
buttons[0].boton_btnon.onEnterFrame=handle_menu;
also entweder du hast wie hier im forum einen schreibfehler drinn: das on
oder boton_btnon ist kein zeiger auf ein mc?
oder handle_menu keine funktion?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (24-07-2007 um 19:44 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 24-07-2007, 23:36   #5 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
danke :-)
ich habe das script nicht geschrieben. ist ein zusammenklmüstertes teil aus verschiedenen scripts. das problem lag, wie du schon geschriebn hast, im O
onEnterfraem schreibfehler und der instanzierung der mc's. diese sind dummerweise über einern mc mehr verschachtelt und ich hatte eben diese instanz ausgelassen.

gibt es eigentlich zu onenterframe einen ersatz wie etwa einen eventlistener passend zu diesem fall?
__________________
lieben Gruß

Daniel

/////////////////////////////////////////////////////
________________________________________
MAKAKEE MONKEY ILUSIGN
Illustrations, Shirtsign and Art
________________________________________
dabinjo ist offline   Mit Zitat antworten
Alt 25-07-2007, 03:19   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
nicht in flash8 und nicht in AS1

wenn, dann könnte man setInterval dafür missbrauchen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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 23:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele