Niste prijavljeni (Prijavi se)

Vanilla 1.1.4 is a product of Lussumo. More Information: Documentation, Community Support.

 
Aug 23rd 2009
 

Pozdrav,

muci me sl. problem. Naime pre izvesnog vremena odradio sam flash galeriju koju mozete pogledai na NavyNews na dnu index strane. To je u stvari bila komponenta kojoj sam ja dodao ovaj okvircic i toje bilo to. E sad klijent hoce da u istu ugradi speed control. Posto komponenta nema opciju za podesavanje speed-a, poceo sam sa kreiranjem nove galerije ponovo i naisao na ovaj Problem.

Ne umem da napravim loop u kretanju slika. Mozete li mi pomoci?

 Evo i kompletnog koda:

var images:XML = new XML();
images.ignoreWhite = true;
images.load("content.xml");
images.onLoad = function(e:Boolean){
    if(e){
        gotoAndStop("Init");
    }
    else{
        trace("false")
    }
}

 

///Init

 

stop();

var distance:Number;
var photos:Array = new Array();
var photosNr:Number;
var widths:Array = new Array();

distance = images.firstChild.attributes.distance;
photosNr = images.firstChild.childNodes.length;

var siz;
var pom:Number = 0;
var sizz:Number;

var holder2_mc:MovieClip = holder_mc.createEmptyMovieClip("images_m", this.getNextHighestDepth);
 
for(var i:Number = 0; i<=photosNr-1; i++){
    widths.push(images.firstChild.childNodes[i].childNodes[1].firstChild);
    photos.push(images.firstChild.childNodes[i].firstChild.firstChild);
    var imageURL:String = images.firstChild.childNodes[i].firstChild.firstChild;
    var image_mc:MovieClip = holder2_mc.createEmptyMovieClip("photo"+i, holder2_mc.getNextHighestDepth());
    image_mc.loadMovie(imageURL);
    image_mc._x = pom;
    siz = widths[i];
    sizz = parseInt(siz);
    var plus:Number = sizz + 2;
    pom += plus;
}

gotoAndStop("movement");

 

/// movement

 holder2_mc.onEnterFrame = function(){
    this._x -= 1;
 
}

 

 

Unapred hvala

 

 
Aug 23rd 2009
 
Dodas enter frame listener i onda proveravas na kojoj je poziciji koja slika, ukolika slika ode u x minus onoliko koliko je siroka prebacis je na kraj reda i to je to
stalno ce da lupa :)

Ako nisi razumeo odkucat cu ti code.
 
Aug 25th 2009
 

Ako ti ne predstavlja problem bilo bi super. Kapiram sta hoces da mi kazes ali to nikako da izvedem. Ako moze code bio bih ti puno zahvalan.

 

 
Aug 26th 2009
 
http://mrsteel.wordpress.com/2007/02/14/dynamic-text-scrolling-actionscript-example/

ovde imas u horizontalnom i vertikalnom skrolu primer kako prebacujem jednu za drugom kada predju granicu na pocetak tako da skrol izgleda beskonacan
 
Aug 27th 2009
 

Da ovo je ok, ali povlaci sl. pitanje. Kako duplicirati sadrzaj dinamicki kreiranih movie clipova? Da li svaki od klipova snimati u bitmape pa kasnije raditi sa bitmapama ili?

 

Pala mi je na pamet ideja da odmah na startu ucitam sve slike a iza njih jos jednom prve 4 ili 5 slike, pa da onda na odredjenom mesto vracam holdre2_mc na 0. 

 

 

 
Aug 27th 2009
 
Odnosno ako bih radio sa bitmapama da li bih trebao da pravim od svake slike pravim bitmapu ili samo od holdre2_mc u kome se nalaze sve slicke?
 
Aug 27th 2009
 
http://mrsteel.wordpress.com/2007/03/12/duplicate-movieclip-with-bitmapdata/
 
Aug 27th 2009
 

 

dupliranje ti treba samo ako item-i ne staju u sirinu skrolera pa moras da dupliras sadrzaj
ako je sadrzaj siri onda nema potrebe da dupliras, samo taj element sto ispadne, stavis opet iza svega

ako bi uzeo bitmapu svega i duplirao je i to je isto ok, ali moze da ispadne lose ako je sirina velika

 

 
Aug 28th 2009
 

Nocas sam cele noci trazio resenje i naisao na gore navedeni primer. Uradio sam ga tako, ali kao duplicirani mc dobijam mc odradjenih dimenzija ali bez sadraja samo sa belom pozadinom (iako sam definisao pozadinu bitmape kao crnu(0x000000) i transparentnost stavio na false.) Negde gresim pri kreiranju bitmape. Lepo radi dupliciranje i kretanje dupliciranog mc-a (provereno u debugeru) ali sadrzaja nema. Evo koda dole:

stop();
import flash.display.*;

var distance:Number;
var photos:Array = new Array();
var photosNr:Number;
var widths:Array = new Array();

distance = images.firstChild.attributes.distance;
photosNr = images.firstChild.childNodes.length;

var siz;
var pom:Number = 0;
var sizz:Number;
 
for(var i:Number = 0; i<=photosNr-1; i++){
    widths.push(images.firstChild.childNodes[i].childNodes[1].firstChild);
    photos.push(images.firstChild.childNodes[i].firstChild.firstChild);
    var imageURL:String = images.firstChild.childNodes[i].firstChild.firstChild;
    var image_mc:MovieClip = holder_mc.createEmptyMovieClip("photo"+i, holder_mc.getNextHighestDepth());
    image_mc.loadMovie(imageURL);
    image_mc._x = pom;
    siz = widths[i];
    sizz = parseInt(siz);
    var plus:Number = sizz + 2;
    pom += plus;
}


   

var mc22:MovieClip = _root.createEmptyMovieClip("holder2_mc", _root.getNextHighestDepth());
_root.holder2_mc._x = holder_mc._x + pom + 2;
_root.holder2_mc._y = holder_mc._y;



var BTM:BitmapData = new BitmapData(pom, 186, false, 0x000000);
BTM.draw(holder_mc)
holder2_mc.attachBitmap(BTM, this.getNextHighestDepth());
   


holder_mc.onEnterFrame = function(){
    holder_mc._x -= 3;
    holder2_mc._x -= 3;

    if ((holder_mc._x + pom)< 0) {            

           holder_mc._x = holder2_mc._x-3; //
             holder2_mc._x = holder_mc._x + pom + 5;
      }
}


E sad to sa ispadanjem elementa i stavljanjem istog iza svega mi deluje kao bolja opcije (isto je predlozio i WhiteWeedow, cini mi se i obecao neki kod :-)), ali ne znam kako da izvedem to. Moze li neko da mi objasni kako se radi to prebacivanje u mom slucaju konkretno. Celi kod je gore...

Unapred hvala.
 
Aug 28th 2009 izmenjeno
 
import flash.display.*;

var distance:Number;
var photos:Array = new Array();
var photosNr:Number;
var widths:Array = new Array();
var photoObjects:Array = new Array(); /*ovdje guras u array sve objekte koji idu u _holder pogledaj liniju 23*/

distance = images.firstChild.attributes.distance;
photosNr = images.firstChild.childNodes.length;

var siz;
var pom:Number = 0;
var sizz:Number;
 
for(var i:Number = 0; i<=photosNr-1; i++){
    widths.push(images.firstChild.childNodes[i].childNodes[1].firstChild);
    photos.push(images.firstChild.childNodes[i].firstChild.firstChild);
    var imageURL:String = images.firstChild.childNodes[i].firstChild.firstChild;
    var image_mc:MovieClip = holder_mc.createEmptyMovieClip("photo"+i, holder_mc.getNextHighestDepth());
    image_mc.loadMovie(imageURL);
    image_mc._x = pom;
     photoObjects.push(image_mc); // dodaj objekat u niz koji ces handlovati u enterframe funkciji
    siz = widths[i];
    sizz = parseInt(siz);
    var plus:Number = sizz + 2;
    pom += plus;
}
  


holder_mc.onEnterFrame = function(){
  
    for (var _n:Number = new Number(); _n < photoObjects.length; _n++) {
       
        var obj:MovieClip = photoObjects[_n];
        obj._x -= 3;
       
        if (obj._x + obj._width / 0 == Number.NEGATIVE_INFINITY) {
           
            obj._x = this._width + 2;
        }
    }
}