Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-02-2010, 12:16   #1 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 928
Wie ändert man die Breite einer ScrollBar innerhalb einer ScrollPane

Hallo Leute,

die Basics wieder.

Ich möchte gerne die ScrollBar einer ScrollPane verbreitern aber alle Ansätze scheitern bei mir:
ActionScript:
  1. import fl.controls.ScrollBar;
  2. import fl.containers.ScrollPane;
  3.  
  4. var sprite : Sprite = new Sprite();
  5. var g : Graphics = sprite.graphics;
  6.     g.beginFill( 0xff0000 );
  7.     g.drawEllipse( 0, 0, 1000, 1000 );
  8.     g.endFill();
  9.    
  10. var scrollPane : ScrollPane = new ScrollPane();
  11.     scrollPane.x = 100;
  12.     scrollPane.source = sprite;
  13.     scrollPane.setSize( 300, 300 );
  14. addChild( scrollPane );
  15.  
  16. var scrollBar : ScrollBar = new ScrollBar();
  17. addChild( scrollBar );
  18.  
  19. // Geht nicht
  20. scrollBar.width = 100;
  21. scrollBar.setSize( 100, scrollBar.height );
  22.  
  23. // Geht nicht
  24. scrollPane.verticalScrollBar.width = 100;
  25. scrollPane.verticalScrollBar.setSize( 100, scrollPane.verticalScrollBar.height );
  26. scrollPane.update();

Ich nehme an man muss das mit
Code:
ScrollBar.setStyle();
machen aber ich finde ums Verrecken keine Auflistung aller möglichen Stile.

Kann mir da mal kurz jemand den Link zur Dokumentation posten? Ich stell mich an...

Danke!
derRaab ist offline   Mit Zitat antworten
Alt 19-02-2010, 12:30   #2 (permalink)
Certified dump
 
Registriert seit: Aug 2001
Beiträge: 969
Das war nie eingeplant die Breite zu ändern.
Du bist seit 9 Jahren auch der erste Erdenbürger, der so einen Unsinn vorhat.

Musst Du wohl manuell anpassen im Code, etwa da...

C:\Programme\Adobe\Adobe Flash CS4\Common\First Run\Classes\mx\controls\UIScrollBar.as
__________________
_______
rudi66 ist offline   Mit Zitat antworten
Alt 19-02-2010, 13:05   #3 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 928
Kann doch nicht sein, oder? Ich will die für ein Touch-Display verwenden und eben größer machen.

Interessant: Die Breite wird wohl korrekt gesetzt:
ActionScript:
  1. import fl.controls.ScrollBar;
  2. import fl.containers.ScrollPane;
  3.  
  4. var sprite : Sprite = new Sprite();
  5. var g : Graphics = sprite.graphics;
  6.     g.beginFill( 0xff0000 );
  7.     g.drawEllipse( 0, 0, 1000, 1000 );
  8.     g.endFill();
  9.    
  10. var scrollPane : ScrollPane = new ScrollPane();
  11.     scrollPane.x = 100;
  12.     scrollPane.source = sprite;
  13.     scrollPane.setSize( 300, 300 );
  14. addChild( scrollPane );
  15.  
  16. var scrollBar : ScrollBar = new ScrollBar();
  17. addChild( scrollBar );
  18.  
  19. // Geht nicht
  20. scrollBar.width = 100;
  21. scrollBar.setSize( 100, scrollBar.height );
  22.  
  23. // Geht nicht
  24. scrollPane.verticalScrollBar.width = 100;
  25. scrollPane.verticalScrollBar.setSize( 100, scrollPane.verticalScrollBar.height );
  26. scrollPane.update();
  27.  
  28. trace( scrollBar.width ); //100
  29. trace( scrollPane.verticalScrollBar.width ); //100
  30.  

Bevor ich mich da durch wühle möchte ich gerne nochmal nach einer Liste aller verfügbaren Styles fragen. Die muss doch irgendwo dokumentiert sein?

derRaab ist offline   Mit Zitat antworten
Alt 19-02-2010, 13:07   #4 (permalink)
Certified dump
 
Registriert seit: Aug 2001
Beiträge: 969
Kann schon sein.
Autos fahren auch nur auf 4 Rädern -
niemand will da ein fünftes dran haben...
__________________
_______
rudi66 ist offline   Mit Zitat antworten
Alt 19-02-2010, 13:08   #5 (permalink)
SYS 64738
 
Benutzerbild von Das_Nerzkanu
 
Registriert seit: Oct 2006
Ort: Trier
Beiträge: 214
Hi,

Du könntest auch ein Sprite über die Scrollbar legen und anhand dessen Position die horitzontalScrollPosition des ScrollPane bestimmen. Das Sprite würde eine bestimmte Breite eben nie unterschreiten.

Grüße
Das_Nerzkanu ist offline   Mit Zitat antworten
Alt 19-02-2010, 13:26   #6 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 928
Leider verstehe ich nicht ganz was Du möchtest.

Gefragt ist ein einfacher Weg wie ich der ScrollBar eine neue Breite zuweisen kann.
derRaab ist offline   Mit Zitat antworten
Alt 19-02-2010, 13:32   #7 (permalink)
Certified dump
 
Registriert seit: Aug 2001
Beiträge: 969
fl.controls.UIScrollBar (ActionScript 3.0)

Wenn da nichts ist, bleibt nur:

a) Eigenen Scroller bauen
b) Scroller Komponente anpassen nach Bedarf in UIScrollBar.as
c) irgendeinen faulen Kompromiss basteln mit drüberliegendem MC
__________________
_______
rudi66 ist offline   Mit Zitat antworten
Alt 19-02-2010, 14:08   #8 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 928
Ich habe jetzt versucht das irgendwie zu hacken um einfach mit der Komponente arbeiten zu können, aber in der Klasse steht:

ActionScript:
  1. public class ScrollBar extends UIComponent {
  2.         /**
  3.          * @private (internal)
  4.          *
  5.          * @langversion 3.0
  6.          * @playerversion Flash 9.0.28.0
  7.          */
  8.         public static const WIDTH:Number = 15;

Und auch die ScrollPane arbeitet mit der Konstanten.

Warum um alles in der Welt ist das eine Konstante???

Ich sehe keinen Weg das zu ändern. Selbst wenn man neue Skins zuweist werden die trotzdem auf 15 Pixel gesetzt und auch wenn ich das abfange wird innerhalb der ScrollPane-Komponente anhand ScrollBar.WIDTH die ScrollBar positioniert.

WTF???

derRaab ist offline   Mit Zitat antworten
Alt 19-02-2010, 15:27   #9 (permalink)
Certified dump
 
Registriert seit: Aug 2001
Beiträge: 969
Schau mal auf das Bild, so einen breiten Scroller will die Menschheit nicht.

Gott Sei dank haben die das Einstylen verboten....!
Angehängte Grafiken
Dateityp: gif scroller_fett.gif (34,8 KB, 25x aufgerufen)
__________________
_______
rudi66 ist offline   Mit Zitat antworten
Alt 19-02-2010, 15:44   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
@rudi... was ist denn mit dir los?
Omega Psi ist offline   Mit Zitat antworten
Alt 19-02-2010, 16:05   #11 (permalink)
Certified dump
 
Registriert seit: Aug 2001
Beiträge: 969
Ja, habe schlecht geschlafen die Nacht.

Er ignoriert aber auch meine Hilfe,
wenn die Breite der Scrollbar keinen Style hat
(was ja zu verstehen ist), muss er halt an die Komponenten-Klassen ran...
__________________
_______
rudi66 ist offline   Mit Zitat antworten
Alt 19-02-2010, 16:32   #12 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Kalifornien
Beiträge: 239
Wenn mc die Komponente ist kann man den Scrollbar so aendern.

mc.verticalScrollBar.width = 20;
mc.horizontalScrollBar.width = 20;
for (var i:int=0; i<=3; i++)
{
mc.verticalScrollBar.getChildAt(i).width = 20;
mc.horizontalScrollBar.getChildAt(i).width = 20;
}

Jedoch habe ich es bisher nicht hinbekommen, die Scrollschiene (richtig in Deutsch?) zu veraendern.
__________________
Es war schon immer etwas teurer, einen guten Flash Film zu machen.
www.flashscript.biz
cancerinform ist offline   Mit Zitat antworten
Alt 20-02-2010, 22:52   #13 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 928
@rudi66: Na ich würde die schon so gestalten, dass das dann gut aussieht. Keine Sorge.

@cancerinform: Danke für den Ansatz, leider lässt sich der ScrollTrack-Clip so einfach von "außen" auch nicht so leicht umgestalten.

Und ich habe mir die Komponentenklassen natürlich näher angesehen, aber alles läuft darauf hinaus, dass man die Konstante leider kaum umgehen kann. Noch dazu im Zusammenspiel mit der ScrollPane-Komponente. Und da ich nicht noch mehr Zeit damit verschwenden will werde ich einfach eine eigene ScrollBar verwenden.

Ich habe schlicht und einfach nicht glauben können, dass man das so programmiert hat, dass es nicht zu ändern ist. Da frage ich mich immer noch, was die sich dabei gedacht haben.

Naja...
derRaab ist offline   Mit Zitat antworten
Alt 20-02-2010, 23:06   #14 (permalink)
SYS 64738
 
Benutzerbild von Das_Nerzkanu
 
Registriert seit: Oct 2006
Ort: Trier
Beiträge: 214
Zitat:
Ich habe schlicht und einfach nicht glauben können, dass man das so programmiert hat, dass es nicht zu ändern ist. Da frage ich mich immer noch, was die sich dabei gedacht haben.
Ich denke das liegt daran, weil die Breite der ScrollBar von der Relation Breite-ViewPort-ScrollPane / ScrollPane.source abhängig ist.

Wenn Du z.B. eine ScrollPane mit der Breite 300 hast und die Source 900 breit ist, dann dann nimmt die ScrollBar 1/3 des verfügbaren Platzes ein. Der User kann somit direkt sehen, wieviel Content die ScrollPane enthält. Würdest Du die Breite manuell ändern wäre das nicht mehr so.

Grüße
Das_Nerzkanu ist offline   Mit Zitat antworten
Alt 22-02-2010, 10:24   #15 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 928
Ich denke schon, dass das korrekt funktionieren würde hätten die nicht mit einer Konstante gearbeitet.

Egal. Das Thema scheint durch.
derRaab 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
swf laden in einer schräge aber swf ändert mcs lolrene ActionScript 1 1 10-01-2006 13:09
Breite einer Tabelle siflu HTML und CSS 6 20-05-2004 12:11
mit loadmovie aus einer 1.swf eine bestimmte position in einer scrollpane ansprechen Feiermeister Flash MX 0 16-03-2004 13:01
scrollbar innerhalb scrollpane? ibiza pedro Flash MX 0 06-10-2003 14:38


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele