SWiSH Forum
Forum użytkowników programów SWiSH

Skrypty do programu SWiSH2 i SWISHmax - Wczytywany obrazek do kontenera skalowany na wysokość

psychol - Sob 06 Sie, 2011 22:03
Temat postu: Wczytywany obrazek do kontenera skalowany na wysokość
Witam tak jak w opisie. Próbowałem zrobić tak by obrazek wczytywany do kontenera jpgpoziom był skalowany tylko na wysokość i odpowiednio dobierał szerokość. Efekt nie do końca udany, mam w pliku obrazek(mega duży) jest poszatkowany pomimo jego dużej rozdzielczości. Jest na to jakaś rada ?

Kod mam taki
Kod:

onSelfEvent (load) {
jpgpoziom.loadMovie("1.jpg")
jpgpoziom._height=100
jpgpoziom._width=100

;
}


Pozdrawiam

Januszr - Nie 07 Sie, 2011 18:22

Najpierw ładuj. Czyli np. na pierwszej klatce użyj loadMovie - z parametrami jak zrobiłeś.
I jak już załadujesz, to dopiero rób z tym jakieś operacje. Czyli dopiero na kolejnej klatce (znowu: z parametrami jak zrobiłeś) powinno być określone _width i _height.
Napisz czy pomogło :)

PS. Oczywiście te klatki nie są obligatoryjne. Może być np warunek if loaded to szerokość i wysokość... Ale zasada jest taka, że najpierw ładujemy a potem załadowanym się bawimy :)

psychol - Nie 07 Sie, 2011 18:46

A powiedz mi jak np zastosować zezwolenie na wygładzanie? chodzi mi właściwie o komendę, bo w przypadku wgranego jpg do animacji można to ustawić w opcjach obrazka a w przypadku ładowanego zewnętrznego jpg jest problem
Januszr - Nie 07 Sie, 2011 19:19

Nie ma "prostego i łatwego" sposobu. Większość znanych rozwiązań polega na skopiowaniu obrazu przez skrypt i wyświetlenie go w jakości określonej skryptem.
Proste i łatwe obejście: ładuj swfy, w których nadasz obrazkom allowsmoothing.
Kod wygląda mniej więcej tak:

Kod:
function myCopy(pic) {

    // create mc to draw to
     var mc = this.createEmptyMovieClip('mc', this.getNextHighestDepth());
    // bitmap info
    var bmp = new flash.display.BitmapData(loadListener.myWidth, loadListener.myHeight, true, 0xFFFFFF);
    // draw image to canvas
   
    bmp.draw(pic);
    this.picparent.container.attachBitmap(bmp,0,null,true);
   
    //just to test add a slight rotation - comment out
    this.picparent._rotation = -10;
}

// create the movieclips
// first the temporary mc where you load the initial image
this.createEmptyMovieClip('temploader', this.getNextHighestDepth());
// then a movieclip where you'll create your canvas
this.createEmptyMovieClip('picparent', this.getNextHighestDepth());
// finally the actual movieclip where your image will get drawn
picparent.createEmptyMovieClip('container', this.getNextHighestDepth());



var loadListener:Object = new Object();
var mcLoader:MovieClipLoader = new MovieClipLoader();

mcLoader.addListener(loadListener);

loadListener.onLoadStart = function(target_mc:MovieClip):Void {
     // make the temporay mc invisible
     target_mc._alpha=0;
}
loadListener.onLoadInit = function(target_mc:MovieClip):Void  {
    // get the image dimensions
    this.myWidth = target_mc._width;
    this.myHeight = target_mc._height;
   
    // when the image is fully loaded copy it with smoothing to the final container
    myCopy(temploader);
   
};
function preload(myClip) {
    //loding fumction
    mcLoader.loadClip(myClip,temploader);
}

//Start loading your image
preload("mj.png");


Ale ja już nie będę się tym bawił charytatywnie :)

[ Dodano: Nie 07 Sie, 2011 19:21 ]
Nie napisałeś czy działa.

psychol - Nie 07 Sie, 2011 19:35

:) nie dział bo dopiero to robię. Jak tylko zrobię dam znać

Co do drugiego to wiem, że to nie koncert życzeń ale i tak dziękuje za to co jest przynajmniej wiem gdzie zacząć. Szukałem tego długo i wszytko co widziałem do tej pory to był znienawidzony przez mnie adobe flasch (sięgam tylko w ostateczności po niego)

Jak uporam się z pierwszym zajmę się drugim :) i umieszczę ewentualny wynik ( jak będzie co :) Ps gdzie ci piwo postawić i ewentualnie jak mam jakieś swoje rozwiązania które mogą się komuś przydać to gdzie je wklejać dla potomności (nie należę do takich co chomikują rozwiązania dla siebie )

Januszr - Nie 07 Sie, 2011 21:31

Zobacz, czy taki smooth może być...
psychol - Pon 15 Sie, 2011 19:05

Witam trochę ostatnio pochorowałem się dlatego się nie odzywam jak tylko dojdę do siebie to napisze jaki dało to efekt

Powered by phpBB modified by Przemo © 2003 phpBB Group