gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201

Ik zit wat te prutsen in flash (actionscript 3), en ik loop tegen 't verschijnsel aan dat als ik wat sprites op een 'stage' gooi met addchild, de stage automagisch resized zodat alles op netjes past. Da's niet waar ik op zit te wachten, want ik gebruik stage.height om verhoudingen uit te rekenen -- en dat gaat de mist in als stage.height halverwege veranderd. Wat ik eigenlijk zou willen is dat sprites/shapes die niet op de stage passen automatisch worden gecropped. Wat googlen geeft alleen 'stage.scaleMode' (met een viertal toestanden), maar die doen niet wat ik had gehoopt.

Iemand suggesties? De googles zijn niet echt een hulp bij AS problemen.
21-07-2009 om 19:36 | 23 reacties | 0 | Zuigt! Heerst!
 
Zelf ook zeiken
Gezeik van anderen
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
Ik begrijp het probleem niet goed. Wanneer je met addChild sprites op de stage zet, zou deze niet moeten veranderen van grootte. Kun je een stukje code plaatsen, zodat ik dat eens kan bekijken?
22-07-2009 11:46:43 | # | 0 | Zuigt! Heerst!
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
*vinkt mail notifier aan*
22-07-2009 11:47:42 | # | 0 | Zuigt! Heerst!
gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201
Komt vanavond wel, ik moet eerst nogal wat wegknippen om een heldere testcase te maken.
22-07-2009 11:58:22 | # | 0 | Zuigt! Heerst!
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
Prima, dan wacht ik dat wel af.
22-07-2009 11:59:13 | # | 0 | Zuigt! Heerst!
gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201
Oh, nu ik toch een flashexpert aan de lijn heb: in een ander stukje code maak ik een image density plot/contourplot (zie hier voor een idee)

Dat gaat ongeveer zo:

var data=series.data;
var il=data.length;
n.lineStyle (undefined);
for (var i=0; i< il; i++) {
var d=data[ i ];
var c=get_colormap_color (d[2]);
x=d[0]/4;
y=d[1]/4;
n.beginFill(c);
n.drawRect(x2pixels(x),y2pixels(y),px,py);
}
n.endFill();

...en dat duurt ongeveer 15 seconden. Uitcommenten van de drawrect en beginfill zorgt ervoor dat de totale tijd richting 2-3 seconden gaat. Binnen die 3 seconden valt nog wel het nodige weg te optimalizeren, maar de bulk zit 'm momenteel puur in het aanmaken van drawRects. Ik heb begrepen dat bitmaps 'de way to go' zijn, maar kan zo snel niet vinden hoe je dat zou moeten doen (of dat er andere flash-oplossingen zijn om dit soort dingen te doen).
22-07-2009 12:12:28 | # | 0 | Zuigt! Heerst!
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
En wat is n nu? Een sprite? Zo'n beetje iedere class heeft toegang tot de Graphics class, hoewel dat niet veel uitmaakt want een sprite is gewoon een movieclip met wat minder functies. Maar laten we ervan uitgaan dat het een sprite is, het probleem is dus dat na de drawRect de stage zich resized, juist?
22-07-2009 12:20:50 | # | 0 | Zuigt! Heerst!
gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201
n is inderdaad afkomstig van een sprite:


var myChart:Sprite = new Sprite();
....
var n = myChart.graphics;

Het resize-probleem heb ik hier niet; dat zie ik als ik de labels bij de grafiekassen toevoeg. Het typische is dat een multiline-textField netjes gecropped lijkt te worden, en een getal de stage resize'd. Hier heb ik puur een performance-probleem; met een contourplot bestaande uit 100x100 punten eindig je met 10.000 drawrects.
22-07-2009 12:25:59 | # | 0 | Zuigt! Heerst!
pedigree Retecool Goldmember

Aantal posts: 51
Aantal reacties: 5566
Had Kets al "UBUNTU!" gezegd?
22-07-2009 12:27:13 | # | 2 | Zuigt! Heerst!
gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201
Neu, maar dat komt nog wel. En dat dit topic uit de u zei moet ook.

Overigens, met 'een getal' bedoel ik 'een kort stukje single-line tekst (bv. een getal)'.
22-07-2009 12:30:20 | # | 0 | Zuigt! Heerst!
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
Je zou deze library eens kunnen proberen om de performance wat op te krikken.
22-07-2009 12:36:01 | # | 0 | Zuigt! Heerst!
Ketsman Retecool Goldmember

Aantal posts: 353
Aantal reacties: 19500
UBUNTU! En dat dit topic uit de u zei moet ook.
22-07-2009 12:39:07 | # | 3 | Zuigt! Heerst!
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
Godvergeten kutbanner bedekt een deel van de navigatie van de site.
22-07-2009 12:40:12 | # | 0 | Zuigt! Heerst!
gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201
Gisteren vond ik hier trouwens nog het een en ander qua optimalisaties, maar dat blijft vooral hangen op min-of-meer conventionele javascript-trucks.
22-07-2009 15:13:50 | # | 0 | Zuigt! Heerst!
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
Ik denk dat het bij jou meer gaat om het schrijven naar de videobuffer. Die zou je moeten kunnen optimaliseren door niet de graphics class maar een andere class te gebruiken die geoptimaliseerd is, zoals er ook freeware tweening engines zijn veel sneller zijn dan de ingebouwde.
22-07-2009 15:21:58 | # | 0 | Zuigt! Heerst!
gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201
Ja, zou goed kunnen. Ik wil ook niet veel meer dan 'n vierkantje met een kleurtje displayen-- d'r hoeven geen events ed aan te hangen (en mocht dat nodig zijn, dan doe i dat via een onderliggend canvas waarmee ik 't meest-in-de buurt-liggende vierkantje opspoor)
22-07-2009 17:15:16 | # | 0 | Zuigt! Heerst!
gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;

public class test2 extends Sprite
{
public function test2()
{
var dummy:Sprite = new Sprite();

dummy.graphics.lineStyle(2,0x0);
dummy.graphics.drawCircle(100,100,50);
dummy.graphics.endFill();

var t=new TextField();
t.text='stage.height #1:'+stage.height;
t.autoSize=flash.text.TextFieldAutoSize.LEFT;
addChild(t);
addChild(dummy);

var u=new TextField();
u.text=String(stage.height);
u.autoSize=flash.text.TextFieldAutoSize.LEFT;
u.text='stage.height #2:'+stage.height;
u.y=20
addChild(u);
}
}
}
22-07-2009 20:08:05 | # | 0 | Zuigt! Heerst!
gronk Retecool Goldmember

Aantal posts: 364
Aantal reacties: 14201
En wat ik me nu realizeer: ik ging ervan uit dat 'stage' een bij default altijd net zo groot was als je de grootte van je swf, of daaromtrent. (d'r zat nog wat demo-code in voor het overhalen van data uit een stuk js, en dat voegde een groot textveld toe.) Dat is dus niet zo; wat in stage.height en stage.width staat is 'de kleinst passende omtrek', als je niets op je stage hebt staan is dat netjes 0,0. Zet een punt op 50,50 en je stage is 50x50.

Waar het om gaat is dat ik een idee heb hoeveel 'pixels' ik tot m'n beschikking heb, zodat ik *vervolgens* kan zeggen 'zet een as neer op 90% van de beschikbare hoogte'. Als AS default al met zo'n coordinatensysteem zou werken (0..1, 0..1 voor je hele window, met daarnaast 'pixelfuncties', voor als je echt wilt gaan lopen pixelneuken, dan zou dat errug fijn zijn.
22-07-2009 20:15:26 | # | 0 | Zuigt! Heerst!
Ketsman Retecool Goldmember

Aantal posts: 353
Aantal reacties: 19500
Ik zie het al, jullie hebben helegaar geen verstand van flash. ik stel flashblock voor.
22-07-2009 20:20:18 | # | -1 | Zuigt! Heerst!
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
Ik ga er in de loop van de dag eens naar kijken. Ben voor de afwisseling best druk, nu iedereen op vakantie is.
23-07-2009 10:14:21 | # | 0 | Zuigt! Heerst!
Ketsman Retecool Goldmember

Aantal posts: 353
Aantal reacties: 19500
23-07-2009 10:17:26 | # | 0 | Zuigt! Heerst!
Hoorah Retecool Goldmember

Aantal posts: 74
Aantal reacties: 4824
Kun je me één technologie noemen die 100% waterdicht is? En nu niet meteen Ubuntu gaan roepen want daar zal ook wel een en ander mee mis zijn.
23-07-2009 10:21:33 | # | 0 | Zuigt! Heerst!
Ketsman Retecool Goldmember

Aantal posts: 353
Aantal reacties: 19500
Interwebtechnologie. de internets kunnen niet nat worden.
23-07-2009 10:29:14 | # | -1 | Zuigt! Heerst!
Ketsman Retecool Goldmember

Aantal posts: 353
Aantal reacties: 19500
Oh kut, NAT-settings?
23-07-2009 11:05:41 | # | 0 | Zuigt! Heerst!

Om te kunnen reageren moet je ingelogd zijn.

Gebruikersnaam:

Wachtwoord:

U zei:
behanger: Maar wat Wildplasser zegt, dus. De Kamer heeft een ...
behanger: (linkje moet reet ff fixen) 60dB(A) ? man, als ik ...
Maikel: gronk op 10-02-2012 Right!
gronk: Zo te zien komen minnetjes komen veel harder aan da...
Maikel: gronk op 10-02-2012 dus is een belofte van 35 % ge...
Ster
In het forum
Meneer van Dale: Cool, thnx alledrie!
Negerkont Spatula: Misschien heb je hier ook nog iets aan
Witjoekel Vilmer: usb poorten dichtkitten, dvd lade vastlijmen, inter...
DarqSoul: Als je niet zelf met allerlei policies wilt klooien...
Tralala: (Niks ervan! Ik wil best Goodies!) Maar die plus-m...
Ster
Sterren
Retecool 8.0 is powered by Howlin' Wolf
Retecool.com is powered by Howlin' Wolf