Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-08-2008, 09:24   #1 (permalink)
Neuer User
 
Registriert seit: May 2006
Ort: Bad Ischl, Österreich
Beiträge: 243
Question Flex: Unterschied zwischen name und id

Hallo,

kurz mal eine kleine Verständnisfrage:
Was ist der Unterschied zwischen den Eigenschaften "name" und "id" bei den Flex Controls?

Lg
Warappa
Warappa ist offline   Mit Zitat antworten
Alt 22-08-2008, 09:26   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Laut Hilfe:

id:
Zitat:
ID of the component. This value becomes the instance name of the object and should not contain any white space or special characters. Each component throughout an application should have a unique id.

If your application is going to be tested by third party tools, give each component a meaningful id. Testing tools use ids to represent the control in their scripts and having a meaningful name can make scripts more readable. For example, set the value of a button to submit_button rather than b1 or button1.

name:
Zitat:
Indicates the instance name of the DisplayObject. The object can be identified in the child list of its parent display object container by calling the getChildByName() method of the display object container.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 22-08-2008, 09:41   #3 (permalink)
Neuer User
 
Registriert seit: May 2006
Ort: Bad Ischl, Österreich
Beiträge: 243
Das heißt also:
Setze ich id wird name automatisch auf den Wert von id gesetzt.
Setze ich name wird der Wert nicht automatisch auf id angewendet.

Sehe ich das richtig?
Warappa ist offline   Mit Zitat antworten
Alt 22-08-2008, 09:46   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Genau, das sind zwei paar Schuhe. Das name-Attribut ist nicht mehr so zu verwenden, wie in ActionScript 2, da nicht eindeutig.
Omega Psi ist offline   Mit Zitat antworten
Alt 22-08-2008, 10:05   #5 (permalink)
Neuer User
 
Registriert seit: May 2006
Ort: Bad Ischl, Österreich
Beiträge: 243
OK, danke für die Erleuchtung

Finde ich zwar nicht ganz konsistent gelöst aber was solls. Also immer mit id arbeiten dann ist man auf der sicheren Seite...

Danke nochmals!

Lg
Warappa
Warappa ist offline   Mit Zitat antworten
Alt 22-08-2008, 10:09   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Das ist schon sehr konsistent gelöst... ich kenne mehrere Leute, die so heissen wie ich. Aber meine Sozialversicherungsnummer habe nur ich.
Omega Psi ist offline   Mit Zitat antworten
Alt 22-08-2008, 10:22   #7 (permalink)
Neuer User
 
Registriert seit: May 2006
Ort: Bad Ischl, Österreich
Beiträge: 243
?!

Ich dachte ID UND Name müssen eindeutig sein?! Also eine Control darf ja nicht die gleiche ID haben wie ein anderes und genauso darf ein Control nicht den gleichen name haben wie ein anderes, oder?

Ansonsten wäre z.B. die Funktion getChildByName ja ziemlich sinnlos wenn das Ergebnis mehrdeutig wäre...
Warappa ist offline   Mit Zitat antworten
Alt 22-08-2008, 11:01   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
ActionScript:
  1. package {
  2.  
  3.     import flash.display.Sprite;
  4.  
  5.     public class IdsAndNames extends Sprite {
  6.  
  7.         public function IdsAndNames() {
  8.             var sprite1:Sprite = new Sprite();
  9.             sprite1.name = "Florian";
  10.             var sprite2:Sprite = new Sprite();
  11.             sprite2.name = "Florian";
  12.             this.addChild(sprite1);
  13.             this.addChild(sprite2);
  14.             trace(this.getChildByName("Florian") == sprite1);
  15.             trace(this.getChildByName("Florian") == sprite2);
  16.         }
  17.     }
  18. }
Wenn man mit der Flash IDE arbeitet sind alle Instanzen auf der Bühne aber mit einem eindeutigen Namen belegt. In reinen ActionScript oder Flex Projekten würde man aber nie via getChildByName arbeiten sondern mit Referenzen auf die jeweiligen Objekte (geht schneller und ist eindeutig).
Omega Psi ist offline   Mit Zitat antworten
Alt 22-08-2008, 11:26   #9 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
mehr als deutlich...
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 22-08-2008, 12:23   #10 (permalink)
Neuer User
 
Registriert seit: May 2006
Ort: Bad Ischl, Österreich
Beiträge: 243
Danke für das Beispiel; gibt ein schönes
PHP-Code:
true
false 
aus. Wie du ja gesagt hast: Bei reinen AS3/Flex Projekten wird man's so eh nicht benutzen.

Dein Bespiel kann man ja auch auf UIComponent ausweiten und statt name id nehmen und bekommt das gleiche Ergebnis:
PHP-Code:
var uic:UIComponent = new UIComponent();
var 
uic1:UIComponent = new UIComponent();            
uic1.id "Florian";            
var 
uic2:UIComponent = new UIComponent();
uic2.id "Florian";
uic.addChild(uic1);
uic.addChild(uic2); 
Ich find's jedenfalls interessant, dass die id nicht eindeutig sein muss, sondern nur eindeutig sein soll.

Eigentlich ist name wegen der Ableitung von DisplayObject in UIComponent vorhanden (da ja Flex auf Flash aufsetzt, eh klar).

Warum wurde in Flex überhaupt id eingeführt? Denk mir mal, dass das wahrscheinlich geschichtlich/verwaltungs-technisch/... zu begründen ist...

Jedenfalls danke nochmal.
Warappa ist offline   Mit Zitat antworten
Alt 22-08-2008, 13:12   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Die id findet vor allen Dingen in MXML Dokumenten Verwendung. Da muss sie eindeutig sein - sonst kompiliert die Anwendung nicht.
Omega Psi ist offline   Mit Zitat antworten
Alt 22-08-2008, 13:35   #12 (permalink)
Neuer User
 
Registriert seit: May 2006
Ort: Bad Ischl, Österreich
Beiträge: 243
Stimmt.

Naja, wenn die id nicht nur zur Compiletime sondern auch zur Runtime überprüft werden würde, würde wahrscheinlich die Performance gleich um einiges schlechter aussehen...also passt's schon so.
Warappa 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 13:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele