Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-02-2006, 23:14   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: BGL bei Köln
Beiträge: 275
Question eine funktion allen elementen eines arrays zuordnen

Hallo,
ich habe in einem array per meinArray.push() bilder gelistet.

wenn der cursor auf dem Bild ist, soll sich das jeweilige bild vergrößern.
wenn ich die funktion während durch eine whileschleife zuordne habe ich das prob, dass z.B. meinArray[].hitTest() nur einmal ausgeführt würde. ich kann aber eine whileschleife ja auch nicht in einer onEnterFrame funktion unterbringen... kann mir dabei bitte jemand helfen?
christian23cgn ist offline   Mit Zitat antworten
Alt 11-02-2006, 23:18   #2 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
hä ? hittest ?
was hat du denn genau vor ?
sind diese bilder klickbar und sollen als <<buttons>> funktionieren oder wie ?
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 11-02-2006, 23:20   #3 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Hast du MCs in dem Array stehen oder wie?

Das sollte aber doch gehen:
PHP-Code:
for (var i in deinArray) {
    
deinArray[i].onRollOver = function() {
        
trace("Hello, I am " this._name]);
    }

Hi bloba
sonar ist offline   Mit Zitat antworten
Alt 11-02-2006, 23:33   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: BGL bei Köln
Beiträge: 275
Zitat:
Zitat von bloba
hä ? hittest ?
was hat du denn genau vor ?
sind diese bilder klickbar und sollen als <<buttons>> funktionieren oder wie ?
die bilder (thumbnails) werden als gallerie angeordnet und sollen sich mich _x/yscale bei rollover bisschen vergrößern und später dann auch klickbar sein.



danke @sonar
könnt ihr mir beiläufig ein gutes AS buch empfehlen? danke!
christian23cgn ist offline   Mit Zitat antworten
Alt 11-02-2006, 23:39   #5 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Ganz beiläufig: Alles von Colin Moock
sonar ist offline   Mit Zitat antworten
Alt 11-02-2006, 23:42   #6 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
@christian23cgn dafür brauchst du kein hittest

und als buch denke ich ist der moock schon was feines

hi sønår
__________________
gruß bloba

2 x onkel² b_d

Geändert von bloba (11-02-2006 um 23:45 Uhr)
bloba ist offline   Mit Zitat antworten
Alt 11-02-2006, 23:47   #7 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Hit - Hitter - Hittest

*duck-und-wegrenn*
sonar ist offline   Mit Zitat antworten
Alt 11-02-2006, 23:56   #8 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: BGL bei Köln
Beiträge: 275
Question

noch kurz ne nachfrage dazu...

kann ma onRollOver auch auf dynamisch generierte MCs anwenden?! Es tut sich nämlich nichts und bevor ich auf fehlersuche gehe, wäre die info janz fein. thx
christian23cgn ist offline   Mit Zitat antworten
Alt 12-02-2006, 00:06   #9 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Und wie generierst du die MCs dynamisch?
sonar ist offline   Mit Zitat antworten
Alt 12-02-2006, 07:28   #10 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: BGL bei Köln
Beiträge: 275
Question

mein Vorgehen kurz dargestellt:
ActionScript:
  1. bilder=new Array();
  2. _root.createEmptyMovieClip("bildermc",1);
  3. var i=-1;
  4. while(++i<bilder.length-1){
  5.     bildermc.createEmptyMovieClip("bild"+i,i);
  6.     bildermc["bild"+i].loadMovie("bilder/"+bilder[i]+".jpg");
  7.     bildermc["bild"+i]._x=61*i-22;
  8.     bildermc["bild"+i]._y=2;
  9.     bildermc["bild"+i].onRollOver=function(){
  10.           bildermc["bild"+i]._xscale = 120;
  11.                    bildermc["bild"+i]._yscale = 120;
  12.              }
  13.              bildermc["bild"+i].onMouseDown=function(){
  14.                    getURL("...")
  15.              }
  16. }

die MCs "bildermc["bild"+i]" reagieren aber weder auf onRollOver noch auf onMouseDown...

Geändert von christian23cgn (12-02-2006 um 07:30 Uhr)
christian23cgn ist offline   Mit Zitat antworten
Alt 12-02-2006, 08:19   #11 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Das Bild muss erst fertig geladen sein,
bevor Du ein on-Event darauf
anwenden kannst.

Hier mal ein Beispiel:
PHP-Code:
this.createEmptyMovieClip("bilderrahmen"1);
this.bilderrahmen.loadMovie("dog.jpg");
this.onEnterFrame = function() {
    if (
this.bilderrahmen._width 0) {
        
delete this.onEnterFrame;
        
this.bilderrahmen.onPress = function() {
            
trace("super");
        };
    }
}; 
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 12-02-2006, 08:21   #12 (permalink)
Banned
 
Benutzerbild von _level0
 
Registriert seit: Jan 2006
Beiträge: 849
Zitat:
Zitat von sonar
Hast du MCs in dem Array stehen oder wie?

Das sollte aber doch gehen:
PHP-Code:
for (var i in deinArray) {
    
deinArray[i].onRollOver = function() {
        
trace("Hello, I am " this._name]);
    }

Hi bloba
hmm sicher das das so geht und kein delegate bedarf?

wennd as wirklich ohne delegate geht dann versuchs mal so:
PHP-Code:
   1.
      bilder
=new Array();
   
2.
      _root
.createEmptyMovieClip("bildermc",1);
   
3.
      
var i=-1;
   
4.
      
while(++i<bilder.length-1){
   
5.
          bildermc
.createEmptyMovieClip("bild"+i,i);
   
6.
          bildermc
["bild"+i].loadMovie("bilder/"+bilder[i]+".jpg");
   
7.
          bildermc
["bild"+i]._x=61*i-22;
   
8.
          bildermc
["bild"+i]._y=2;
   
9.
          bildermc
["bild"+i].onRollOver=function(){
  
10.
                _root
.bildermc["bild"+i]._xscale 120;
  
11.
                         _root
.bildermc["bild"+i]._yscale 120;
  
12.
                   
}
  
13.
                   _root
.bildermc["bild"+i].onMouseDown=function(){
  
14.
                         getURL
("...")
  
15.
                   
}
  
16.
      

_level0 ist offline   Mit Zitat antworten
Alt 12-02-2006, 09:04   #13 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: BGL bei Köln
Beiträge: 275
[QUOTE=thebiz]Das Bild muss erst fertig geladen sein,
bevor Du ein on-Event darauf
anwenden kannst.

die bilder werden doch alle schon angezeigt...
Aber wenns nur darum geht, dass ich die on-Event deklaration erst anwenden kann, wenn das bild skriptechnisch geladen wurde, dann hab ich das problem, dass ich die ständige überprüfung via onEnterFrame-funktion nicht umsetzen kann, weil die bilder ja in der whileschleife per dynamischer variable geladen werden... oder?

Geändert von christian23cgn (12-02-2006 um 10:00 Uhr)
christian23cgn ist offline   Mit Zitat antworten
Alt 12-02-2006, 09:58   #14 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: BGL bei Köln
Beiträge: 275
Zitat:
Zitat von _level0
hmm sicher das das so geht und kein delegate bedarf?

wennd as wirklich ohne delegate geht dann versuchs mal so:
PHP-Code:
   ... 
was ist ein delegat?

äh, der MC "djmc" wird von _root aus generiert. demnach ist es doch egal, ob ich _root.djmc... oder djmc für die adressierung verwende?!
christian23cgn ist offline   Mit Zitat antworten
Alt 13-02-2006, 14:12   #15 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: BGL bei Köln
Beiträge: 275
Question

mit der suchfunktion des forums habe ich einige threads diesbezgl. gefunden, wonach es so gehen müsste,... ich hab es aber immer noch nicht geschafft.

wenn ich die "onRollOver"-Anweisung weg lasse, funktioniert die skalierung. demnach ist die adressierung richtig, aber auf die "onRollOver"-anweisung reagiert nichts...

so klappts:
ActionScript:
  1. bilder=new Array();
  2. _root.createEmptyMovieClip("bildermc",1);
  3. var i=-1;
  4. while(++i<bilder.length-1){
  5.     bildermc.createEmptyMovieClip("bild"+i,i);
  6.     bildermc["bild"+i].loadMovie("bilder/"+bilder[i]+".jpg");
  7.     bildermc["bild"+i]._x=61*i-22;
  8.     bildermc["bild"+i]._y=2;
  9.     bildermc["bild"+i]._xscale = 120;
  10.              bildermc["bild"+i]._yscale = 120;
  11. }

allerdings möchte ich die skalierung erst bei RollOver haben...
ActionScript:
  1. bilder=new Array();
  2. _root.createEmptyMovieClip("bildermc",1);
  3. var i=-1;
  4. while(++i<bilder.length-1){
  5.     bildermc.createEmptyMovieClip("bild"+i,i);
  6.     bildermc["bild"+i].loadMovie("bilder/"+bilder[i]+".jpg");
  7.     bildermc["bild"+i]._x=61*i-22;
  8.     bildermc["bild"+i]._y=2;
  9.              bildermc["bild"+i].onRollOver=function(){
  10.     bildermc["bild"+i]._xscale = 120;
  11.              bildermc["bild"+i]._yscale = 120;
  12.              }
  13. }
Hat noch jemand einen tipp für mich, was ich falsch mache?
christian23cgn 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