Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ActionScript 3 : Kako ucitati vise slika preko funkcije?

[es] :: Flash :: ActionScript 3 : Kako ucitati vise slika preko funkcije?

[ Pregleda: 3980 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.exe042.net.



+4 Profil

icon ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 17:25 - pre 193 meseci
.
Hocu da napravim funkciju za ucitavalje slika (.jpg, .png...) koja ce biti reusable.

var bmp:Bitmap = BMPLoader("imeSlike.png);
addChild(bmp);

var bmp1:Bitmap = BMPLoader("imeslike2.jpg);
addChild(bmp1);


Imam BMPLoader("ime"); koja NE moze da uradi return _bmp :(((((((((((((((

Kako se uopste radi return value iz tih onLoad onComplete funkcija?

I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

Vranac
Vranac Srdjan
Software developer
Novi Sad, Vojvodina

Član broj: 3493
Poruke: 353
*.ptt.yu.

Jabber: vranac@elitesecurity.org
ICQ: 64150005
Sajt: www.linkedin.com/in/vrana..


+1 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 17:44 - pre 193 meseci
Ajde postuj kod da vidimo kako radi, pa da gledamo sta dalje
Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.exe042.net.



+4 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 18:59 - pre 193 meseci

function BMPLoader(prom1:String):Bitmap
{
var staza_b:Bitmap = new Bitmap();
var stazaBmpData:BitmapData;
var trackBMPname:String = prom1;
var request1:URLRequest = new URLRequest(trackBMPname);
var trackBMPloader:Loader = new Loader();
trackBMPloader.contentLoaderInfo.addEventListener(Event.COMPLETE, BMPload);
trackBMPloader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, BMPioError);
trackBMPloader.load(request1);
var _BMP:Bitmap = new Bitmap();
//var test:Bitmap = nesto.loader.data
/return test;


function BMPload(event:Event):void
{
//Bitmap(_loader.content);
//var BMPloader:Loader = Loader(event.target.loader);
//textureMap:BitmapData = event.target.content.bitmapData;
/*var image:Bitmap = Bitmap(trackBMPloader.content);
staza_b = new Bitmap(image.bitmapData.clone());*/

staza_b = Bitmap(trackBMPloader.content);
stazaBmpData = staza_b.bitmapData;

//return staza_b; //_BMP; NE RADI
//addChildAt(staza_b, 0); //0 bottom :-)
//return trackBMPloader.content; ni ovo ne radi
}
function BMPioError(event:IOErrorEvent):void
{
trace("Unable to load image: " + trackBMPname);
}
}


var b:Bitmap = BMPLoader("Staza.png");
addChild(b);


BMPLoader() ne radi pa ne radi. Mucim se s tim vec 24h. I veze nemam sta dalje.
Ako imas neki drugi nacin, samo reci. Da se manem bede i da nastavim da programiram dalje :)

I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

Vranac
Vranac Srdjan
Software developer
Novi Sad, Vojvodina

Član broj: 3493
Poruke: 353
77.46.188.*

Jabber: vranac@elitesecurity.org
ICQ: 64150005
Sajt: www.linkedin.com/in/vrana..


+1 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 19:11 - pre 193 meseci
Ovo je radjeno za Flash CS3 ili za Flex?
Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.exe042.net.



+4 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 19:20 - pre 193 meseci
Flash CS3! Veze nemam Flex :(

Ako imas neku ideju, link, bilo sta...
I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

Vranac
Vranac Srdjan
Software developer
Novi Sad, Vojvodina

Član broj: 3493
Poruke: 353
77.46.188.*

Jabber: vranac@elitesecurity.org
ICQ: 64150005
Sajt: www.linkedin.com/in/vrana..


+1 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 19:40 - pre 193 meseci
Malo modifikovan primer iz helpa, mozda je overkill, ali mozes da pratis progress i greske (dodavanje listenera ostavljam tebi ;) )

ImageLoader.as
Code:

package {
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.URLRequest;
    

    public class ImageLoader {
        private var _loader:Loader = new Loader();
        
        private var _callback:Function;
        
        public function ImageLoader() {
            configureListeners(_loader.contentLoaderInfo);

        }

        public function Load(url:String, callback:Function):void {
            _callback = callback;
            var request:URLRequest = new URLRequest(url);
            _loader.load(request);
        }
        
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(Event.INIT, initHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
            
            _callback(_loader);
            
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }

        private function initHandler(event:Event):void {
            trace("initHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }

        private function unLoadHandler(event:Event):void {
            trace("unLoadHandler: " + event);
        }
    }
}


I onda u swfu u nekom frame-u

Code:

import ImageLoader;
import flash.display.DisplayObject;

function callbackSuccess(image:DisplayObject) {
    addChild(image);
}

var myImageLoader = new ImageLoader();

myImageLoader.Load("http://ec.europa.eu/informatio...t/img/project_logos/sample.jpg",callbackSuccess);


Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.exe042.net.



+4 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 19:59 - pre 193 meseci
Hmm, ili sam i dalje pospan ili ne shvatam....
Razumem da ce taj kod da uradi addChild(); ali kako da uradim ono sto mi je najpotrebnije:

var bmp:Bitmap = function("slika.jpg");

tj:


var bmp:Bitmap = myImageLoader.Load("http://ec.....);

i naknadno, mnogo posle ucitavanja addChild(bmp);



EDIT:

Mozda previse mozgam o ovome pa ne vidim sumu od drveca. Hvala ti na trudu u svakom slucaju.
I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

Vranac
Vranac Srdjan
Software developer
Novi Sad, Vojvodina

Član broj: 3493
Poruke: 353
77.46.188.*

Jabber: vranac@elitesecurity.org
ICQ: 64150005
Sajt: www.linkedin.com/in/vrana..


+1 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 20:14 - pre 193 meseci
Ovo ti je klasican image loader, ono sto si prvobitno trazio.

Sad ti meni kazi zasto je bitno da ti se slika smesti u bitmap?
da li treba dalje da je procesiras?
Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
 
Odgovor na temu

gordon_beneth
BGD

Član broj: 104526
Poruke: 192
*.adsl-a-1.sezampro.yu.



+1 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 20:17 - pre 193 meseci
Mozda var bmp:Bitmap = New BMPLoader("imeSlike.png); ??
/(bb|[^b]{2})/
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.exe042.net.



+4 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 21:07 - pre 193 meseci
Ja imam klasican imageLoader, to nije problem. Treba mi kao sto sam i rekao reusable funkcija koja ucitava jpg i ima return value:Bitmap (mada moze i BitmapData) Ako imam jedno, automatski imam i drugo, zar ne?

Da, program ce dalje obradjivati BitmapData. A ucitavacu vise slika i glupo mi je da pravim 300 funkcija razlicitog imena koje rade:
bmp = Bitmap(loader.content);

Jer bih onda morao da pravim loader za SVAKU sliku posebno, sto je besmisleno.

I kljucno je da JA mogu da zadam addChild(bmp) onda kad ja hocu a ne kad se ucita slika.

Nikako ne mogu da shvatim da li je problem u meni ili je to neko ogranicenje Flasha?!?

U pitanju je najobicnija funkcija sa return value : Bitmap. Ali ja i dalje ne umem da je napravim :(


I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

Vranac
Vranac Srdjan
Software developer
Novi Sad, Vojvodina

Član broj: 3493
Poruke: 353
77.46.188.*

Jabber: vranac@elitesecurity.org
ICQ: 64150005
Sajt: www.linkedin.com/in/vrana..


+1 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 21:28 - pre 193 meseci
ImageLoader.as modifikovan da vraca BitmapData
Code:

package {
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.URLRequest;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    
    public class ImageLoader {
        private var _loader:Loader = new Loader();
        
        private var _callback:Function;
        
        public function ImageLoader() {
            configureListeners(_loader.contentLoaderInfo);

        }

        public function Load(url:String, callback:Function):void {
            _callback = callback;
            var request:URLRequest = new URLRequest(url);
            _loader.load(request);
        }
        
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(Event.INIT, initHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
        }
        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
            var returnBitmap:Bitmap = new Bitmap();
            returnBitmap = _loader.content as Bitmap;
            _callback(returnBitmap.bitmapData);
            
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }

        private function initHandler(event:Event):void {
            trace("initHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }

        private function unLoadHandler(event:Event):void {
            trace("unLoadHandler: " + event);
        }
    }
}


i opet u nekom frame-u:
Code:


import ImageLoader;
import flash.display.DisplayObject;

var myBitmap:Bitmap = new Bitmap();

function callbackSuccess(imageData:BitmapData) {
    myBitmap.bitmapData = imageData;
    
    addChild (myBitmap);
}

var myImageLoader = new ImageLoader();

myImageLoader.Load("./image0.jpg",callbackSuccess);

Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.exe042.net.



+4 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?28.05.2008. u 23:43 - pre 193 meseci
Ok lave, hvala mnogo. Ali kako da iskoristim to za myBitmap2, 3, 4,...? Izgleda

Moj problem je sto ne mogu (ne znam) da uradim return iz te callSuccess funkcije.

Da to mogu, onda bih imao pravu reusable f. Nekako mislim da se stalno mimoilazimo u misljenju.

Hvala ti mnogo na pomoci ali izgleda da mi danas nije dan :(


Code:
var myBitmap:Bitmap = new Bitmap();

function callbackSuccess(imageData:BitmapData) {
    myBitmap.bitmapData = imageData;
    
    addChild (myBitmap);
}

var myImageLoader = new ImageLoader();

myImageLoader.Load("./image0.jpg",callbackSuccess);



I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

Vranac
Vranac Srdjan
Software developer
Novi Sad, Vojvodina

Član broj: 3493
Poruke: 353
89.110.203.*

Jabber: vranac@elitesecurity.org
ICQ: 64150005
Sajt: www.linkedin.com/in/vrana..


+1 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?29.05.2008. u 08:01 - pre 193 meseci
OK, ajde da vidimo ovako, ovo je redosled koji se desava pri ucitavanju slike:
1. instanciras ImageLoader u promenjivu
2. pokreces ucitavanje slike
3. event Complete se desi u slucaju da je sve ok, znaci da je slika ucitana i spremna za koriscenje (manipulaciju)
4. koristis sliku (ovde naravno nije navedeno kako dolazis nazad do objekta, moze biti preko callback funkcije ili neceg drugog svejedno)

Obzirom na gore navedeno, i u skladu sa tvojom zeljom da imas x slika koje ce biti ucitane to izgleda ovako
Code:

import ImageLoader;
import flash.display.DisplayObject;

var myBitmap1:Bitmap = new Bitmap();
var myBitmap2:Bitmap = new Bitmap();
var myBitmap3:Bitmap = new Bitmap();
var myBitmap4:Bitmap = new Bitmap();

function callbackSuccess1(image:BitmapData) {
    myBitmap1.bitmapData = image;
}

var myImageLoader1 = new ImageLoader();

myImageLoader1.Load("./image0.jpg",callbackSuccess1);


function callbackSuccess2(image:BitmapData) {
    myBitmap2.bitmapData = image;
    
}

var myImageLoader2 = new ImageLoader();

myImageLoader2.Load("./image1.jpg",callbackSuccess2);


function callbackSuccess3(image:BitmapData) {
    myBitmap3.bitmapData = image;
    
}

var myImageLoader3 = new ImageLoader();

myImageLoader3.Load("./image2.jpg",callbackSuccess3);


function callbackSuccess4(image:BitmapData) {
    myBitmap4.bitmapData = image;
}

var myImageLoader4 = new ImageLoader();

myImageLoader4.Load("./image3.jpg",callbackSuccess4);

Kao sto vidis, kada se budu sva cetiri callbacka izvrsila, imaces cetiri slike u promenjivama, koje mozes manipulisati dalje.

Ovako napisano to radi tako kako ti zelis, ali je problem sto ti se slike ucitavaju istovremeno, i ako ti treba da ih koristis zajedno moras napraviti dodatnu proveru.

Opcija dva jeste da napravis sekvencijalni loader, koji bi ucitao sliku, pa pri success eventu ucitao sledecu dok ne dodje do kraja, itd.


Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.exe042.net.



+4 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?29.05.2008. u 18:27 - pre 193 meseci
Vranac ti si genije! Hvala mnogo!

(spavanje ipak pomaze da se ukapiraju neke stvari :)

I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.exe042.net.



+4 Profil

icon Re: ActionScript 3 : Kako ucitati vise slika preko funkcije?30.05.2008. u 06:25 - pre 193 meseci
Normalan poziv bi izgledao ovako:

var bmp:Bitmap = Load("imeSlike.jpg");
var bmd:bitmapData = bmp.bitmapData;


Ali u Flashu to izgleda ovako:
var bmpL = new bmpLoader();
var staza_b:Bitmap = new Bitmap();
var stazaBmpData:BitmapData;
function pullBMP(image:Bitmap) {
staza_b = image;
stazaBmpData = image.bitmapData;
//gotoAndStop(2); //ovo samo ako je poslednja slika u pitanju!!!
}
bmp.Load("Staza.png",pullBMP);
stop()


: Exciting, isn't it!
: Yeeeeees!


Vranac, hvala ti jos jednom, spasio si me bede. Sada mogu da nastavim dalje da se zezam sa obradom slika.

p.s.
07:24 jos jedna neprospavana noc, ali vredelo je! Sada sve radi :)
I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

[es] :: Flash :: ActionScript 3 : Kako ucitati vise slika preko funkcije?

[ Pregleda: 3980 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.