| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Feb 2003
Beiträge: 79
| wenn zoom, externes bild nachladen
hallo AS-Gurus! ich habe wieder mal eine für mich noch nicht lösbare aufgabe: ich erstelle gerade eine animation, in der sich ein objekt um 360° drehen läßt (animation aus 16 einzelbildern der verschiedenen winkel) und in die man hineinzoomen kann und das objekt im fenster verschieben (drag) kann wenn man gezoomt hat das funktioniert auch alles soweit, aber nun das problem: beim zoomen sollten ja auch die detail´s sichtbar werden. dazu möchte ich externe jpg nachladen. die jpg sind in der höchsten auflösung 2330 x 2330 pixel gross. ich habe 3 verschiedene auflösungen. da diese bilder zu gross sind um sie auf einmal zu laden, habe ich sie in kacheln aufgeteilt (10x10 kacheln bei der höchsten auflösung) und es soll nur die kachel geladen werden, die im fenster sichtbar ist. ich schaffe es aber nicht, dass die bilder nachgeladen werden. mein skript-gedanke sieht so aus: wenn mc skalierung größer 130%{ wenn diese kachel auf bühne sichtbar{ lade 2.auflösung.jpg} wenn mc skalierung größer 300%{ wenn diese kachel auf bühne sichtbar{ lade 2.auflösung.jpg} } es sollen also die einzelnen kacheln erkennen, ob ihre zoomstufe erreicht ist und ob sie überhaupt auf der bühne sichtbar sind. wenn beides zutrifft, soll die jeweilige kachel nachgeladen werden. ich weiss aber nicht wie ich das in actionskript formulieren soll (function? clip event?) und wo ich welches skript plazieren soll (hauptzeitleiste? Kachel?). wäre spitze, wenn mir da jemand weiterhelfen könnte. viele grüße picassi |
| | |
| | #2 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
Hi, wie skalierst du denn die einzelnen Kacheln? Hast du über dem MC mit den einzelnen Kacheln eine Maske? Ein möglicher Ansatz wäre folgender: Setze ein onOnterFrame auf je Kachel. Prüfe darin, ob der MC die Maske berührt: if(this.hitTest(_root.maske)) {...} Prüfe dann, welche Skalierung das Ding hat if(this._xscale >= 130) {..} oder if(_root.hauptMC._xscale >= 130) {...} In Abhängigkeit von der Skalierung kannst du dann die neuen Bilder in die Kacheln laden, die gesehen werden. Du musst dann nur speichern (je Kachel), welche Datei darin geladen wurde, damit diese nicht immer wieder neu lädt, sondern nur, wenn sie die Auflösung ändern soll. Bei vielen Kacheln wird das allerdings ein wenig imperformant, da du unheimlich viele onEnterFrames hast und vor allem in jedem einen hitTest...es ist auch nur ein Ansatz. Alternativ könntest du anhand der Skalierung des HauptMC und der Position sowie der Kachelgröße zentral in einem onEnterFrame berechnen, welche Kacheln sichtbar sind. Das ist halt ein bisschen Mathe ![]() Grüße Sascha
__________________ 12:15, press return |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Feb 2003
Beiträge: 79
|
danke ludabruda das mit dem onEnterFrame hatte ich inzwischen selber geschafft, aber den hitTest kannte ich bisher noch nicht. jetzt funktionierts. ich hoffe die performance geht nicht zu sehr in den keller (ich habe insgesamt 2800 (!!!) kacheln. gruß picassi |
| | |
| | #4 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
dann geh davon aus, dass die Performance in den Keller geht ![]() 2800 onEnterFrames mit hitTests schafft wohl kaum ein Rechner. Ich empfehle dir daher eher die zweite Variante... Grüße Sascha
__________________ 12:15, press return |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Feb 2003
Beiträge: 79
|
es sind immer "nur" 174 zur selben zeit sichtbar. das zoomen funktioniert auch, aber nun habe ich ein anderes problem. wenn ich das objekt weiterdrehe, werden die bilder nicht mehr ausgetauscht. ich habs mit onEnterFrame probiert. dann mit onMouseUp (dass nur aktualisiert wird, wenn ich die maus loslasse), mit selbem ergebnis das untere skript liegt auf den kacheln. vielleicht ist da ja was falsch bzw. besser zu machen. /*this.onEnterFrame = function() { if ((_level0.breit > 130)&&(_level0.breit < 330)){ if (this.hitTest(_root.hg)) { loadMovie("data/m/m_"+_level0.zoomclip.bild +"_08.jpg", _this); updateAfterEvent(); } } };*/ this.onMouseUp = function() { if ((_level0.breit > 130)&&(_level0.breit < 330)){ if (this.hitTest(_root.hg)) { loadMovie("data/m/m_"+_level0.zoomclip.bild +"_08.jpg", _this); updateAfterEvent(); } } }; danke schon mal picassi |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |