Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Nidificazione problema actionscript

    Salve a tutti e scusate ancora il disturbo del principiante.
    Io ho trovato una galleria molto carina e sto tentando di modificare il codice e adattare il file alle mie esigenze.
    Il problema è questo: la galery da se funziona molto bene, io però vorrei spostare il tutto dentro un altro swf dentro un altro MovieClip e quindi credo che il codice non funzioni più per problemi di nidificazione del codice.

    La situazione è questa

    Primo file swf con dentro un movie clip "empty" che carica il secondo swf con dentro un movie clip "gallery" con all'interno tutto il codice della gallery e le sue parti.

    il codice è il seguente:

    stop()
    //
    import flash.display.BitmapData;
    import flash.geom.Rectangle;
    import flash.geom.Point;
    /////////////////////////////////////////////////
    // Variables //
    /////////////////////////////////////////////////
    var Galeria:Array = new Array()
    //
    var thumb:MovieClip
    //
    var xmlTotal:Number
    var total:Number
    var colunas:Number
    var padding:Number
    var itensPagina:Number
    var i:Number
    var id:Number
    var count:Number
    var paginaAtual:Number
    var numPaginas:Number
    var imgAtual:Number
    //
    var xmlNode:XML
    var xmlTotal:XML
    //
    var next_bt:MovieClip = menu_mc.botoes_mc.next_bt
    var prev_bt:MovieClip = menu_mc.botoes_mc.prev_bt
    var close_bt:MovieClip = menu_mc.botoes_mc.close_bt
    enable(close_bt,false,true);
    load_mc._alpha = 0
    //
    function verificaPagina(){
    if(paginaAtual == 0){
    enable(prev_bt,false,true);
    addTween(prev_bt.bg_mc,{_color:0x444444, time:1, transition:"easeInBounce"})
    addTween(prev_bt.icone_mc,{_color:0x999999, time:0.1, transition:"easeInBounce"})
    }else {
    enable(prev_bt,true);
    }
    if(paginaAtual == numPaginas-1){
    enable(next_bt,false,true);
    addTween(next_bt.bg_mc,{_color:0x444444, time:1, transition:"easeInBounce"})
    addTween(next_bt.icone_mc,{_color:0x999999, time:0.1, transition:"easeInBounce"})
    }else {
    enable(next_bt,true);
    }
    }
    /////////////////////////////////////////////////
    /////////////////////////////////////////////////
    function carregaXML():Void {
    ffXML = new XML();
    ffXML.ignoreWhite = true;
    ffXML.onLoad = function(success:Boolean):Void {
    if (success) {
    montaXML()
    } else {
    trace("erro");
    }
    };
    ffXML.load("galeria.xml");
    }
    function montaXML() {
    xmlNode = ffXML.firstChild;
    xmlTotal = xmlNode.childNodes.length;
    for (var i = 0; i<xmlTotal; ++i) {
    var xmlNodeGeral:XMLNode = xmlNode.childNodes[i];
    //
    Galeria.push({titulo:xmlNodeGeral.childNodes[0].firstChild.nodeValue, thumb:xmlNodeGeral.childNodes[1].firstChild.nodeValue, image:xmlNodeGeral.childNodes[2].firstChild.nodeValue, imageb:xmlNodeGeral.childNodes[3].firstChild.nodeValue});
    }
    //
    ini()
    }
    function ini(){
    total = xmlTotal
    colunas = 6;
    padding = 2
    itensPagina = 36
    count = 0
    paginaAtual = 0;
    numPaginas = Math.ceil(total/itensPagina);
    //
    build(paginaAtual)
    verificaPagina()
    }
    /////////////////////////////////////////////////
    // Build the Gallery //
    /////////////////////////////////////////////////
    function build(pagina) {
    var inicio = pagina*itensPagina
    /////////////////////////////////////////////////
    for (i = 0; i<total; i++) {
    thumb = hold_thumbs["item"+i];
    thumb.removeMovieClip()
    }
    /////////////////////////////////////////////////
    for (i = inicio; i<inicio+itensPagina; i++) {
    id = i-inicio;
    if(i<total){
    thumb = hold_thumbs.attachMovie("item", "item"+i, i);
    //
    thumb.titulo = Galeria[i].titulo
    thumb.thumb = Galeria[i].thumb
    thumb.image = Galeria[i].image
    thumb.imageb = Galeria[i].imageb
    //
    thumb.posX = Math.round((120+padding)*(id%colunas));
    thumb.posY = Math.round((80+padding)*Math.floor(id/colunas));
    thumb._x = thumb.posX;
    thumb._y = thumb.posY;
    //
    thumb.i = i;
    thumb.small_mc.desc_mc.tit_txt.autoSize = "left"
    thumb.small_mc.desc_mc.tit_txt.text = (thumb.titulo).toUpperCase()
    //
    thumb.small_mc.alvo_mc._y = 80;
    thumb.loader_mc._alpha = 0;
    enable(thumb,false);
    //
    loadManager.queue({file:thumb.thumb, target:thumb.small_mc.alvo_mc,
    onStart:function () {
    addTween(this._parent._parent.loader_mc,{_alpha:10 0, time:0.5, transition:"easeInBounce"});
    addTween(this,{_saturation:0, time:0, transition:"easeInBounce"});
    },
    onComplete:function () {
    addTween(this._parent._parent.small_mc.alvo_mc,{_y :0, time:0.5, transition:"easeInBounce", rounded:true});
    addTween(this._parent._parent.loader_mc,{_alpha:0, time:0.5, transition:"easeInBounce"});
    enable(this._parent._parent,true);
    }
    });
    //
    thumb.onRollOver = function() {
    addTween(this.small_mc.alvo_mc,{_y:-15, _saturation:100, time:0.5, transition:"easeInBounce"});
    addTween(this.small_mc.desc_mc,{_y:60, time:0.5, transition:"easeInBounce", rounded:true});
    };
    thumb.onRollOut = thumb.onDragOut = function () {
    addTween(this.small_mc.alvo_mc,{_y:0, _saturation:0, time:0.5, transition:"easeInBounce"});
    addTween(this.small_mc.desc_mc,{_y:80, time:0.5, transition:"easeInBounce", rounded:true});
    };
    thumb.onRelease = function() {
    enable(prev_bt,false, true);
    enable(next_bt,false, true);
    imgAtual = this.i
    //
    thumbsHide();
    //
    setTimeout(loadImg, -10, this.image, hold_big);
    setTimeout(loadImg, -10, this.imageb, hold_bigb);
    };
    }
    }
    }
    /////////////////////////////////////////////////
    // Hide Thumbs //
    /////////////////////////////////////////////////
    function thumbsHide() {
    for (i = (paginaAtual+1)*itensPagina-itensPagina; i<(paginaAtual+1)*itensPagina; i++) {
    thumb = hold_thumbs["item"+i];
    addTween(thumb.small_mc.alvo_mc,{_y:80, _saturation:0, time:0.5, transition:"easeInBounce", delay:Math.random()*0.3});
    addTween(thumb.small_mc.desc_mc,{_y:80, time:0.5, transition:"easeInBounce"});
    enable(thumb,false);
    }
    }
    /////////////////////////////////////////////////
    // Show Thumbs //
    /////////////////////////////////////////////////
    function thumbsShow() {
    for (i = (paginaAtual+1)*itensPagina-itensPagina; i<(paginaAtual+1)*itensPagina; i++) {
    thumb = hold_thumbs["item"+i];
    addTween(thumb.small_mc.alvo_mc,{_y:0, time:1, transition:"easeInBounce", delay:Math.random()*0.3});
    enable(thumb,true);
    }
    }
    /////////////////////////////////////////////////
    // Next Page //
    /////////////////////////////////////////////////
    function proxPagina() {
    thumbsHide()
    //
    paginaAtual++
    setTimeout(build,600, paginaAtual);
    //
    verificaPagina()
    }
    /////////////////////////////////////////////////
    // Previous Page //
    /////////////////////////////////////////////////
    function prevPagina() {
    thumbsHide()
    //
    paginaAtual--
    setTimeout(build,600, paginaAtual);
    //
    verificaPagina()
    }
    /////////////////////////////////////////////////
    // Function that loads the Big Image //
    /////////////////////////////////////////////////
    function loadImg(url:String, mc:MovieClip){
    loadManager.load({file:url, target:mc,
    onComplete:function(){
    _root.load_mc._alpha = 0
    //
    mc._visible = false
    setTimeout(transforma,50, mc)
    enable(close_bt, true);
    },
    onStart:function(){
    _root.load_mc._alpha = 100
    },
    onProgress:function(alvo:Object, bLoad:Number, bTotal:Number) {
    _root.load_mc.pct_txt.text = (Math.round(bLoad/bTotal*100)+"%");
    }
    })
    }
    /////////////////////////////////////////////////
    // Apply the Bitmap function on the loaded image //
    /////////////////////////////////////////////////
    function transforma(mc:MovieClip){
    var largItem:Number = 120;
    var altItem:Number = 80;
    var posX:Number
    var posY:Number
    var i:Number
    /////////////////////////////////////////////////
    addTween(menu_mc.bg_mc,{_width:mc._width, time:0.5, transition:"easeInBounce"});
    addTween(menu_mc.botoes_mc,{_x:Math.round(mc._widt h-menu_mc.botoes_mc._width-10), time:0.5, transition:"easeInBounce"});
    /////////////////////////////////////////////////
    var bmap:BitmapData = new BitmapData(mc._width, mc._height, false, 0x000000);
    bmap.draw(mc);
    //
    var numLargura:Number = Math.ceil(bmap.width/largItem)
    var numAltura:Number = Math.ceil(bmap.height/altItem)
    var numTotal:Number = (numLargura)*(numAltura)
    //
    var posXstage:Number = mc._x
    var posYstage:Number = mc._y
    //
    for(i=0; i<numTotal; i++){
    posX = Math.round((largItem)*(i%numLargura));
    posY = Math.round((altItem)*Math.floor(i/numLargura));
    //
    var copia:BitmapData = new BitmapData(largItem, altItem, false, 0x000000);
    copia.copyPixels(bmap,new Rectangle(posX, posY, largItem, altItem),new Point(0, 0));
    //
    var novoAlvo:MovieClip = _root.createEmptyMovieClip("novoAlvo"+count++, _root.getNextHighestDepth());
    novoAlvo.attachBitmap(copia,_root.getNextHighestDe pth());
    //
    novoAlvo._x = posX+posXstage;
    novoAlvo._y = posY+posYstage;
    novoAlvo._yscale = novoAlvo._alpha = 0
    //
    addTween(novoAlvo,{_yscale:100, _alpha:100, time:1, transition:"easeInBounce", delay:Math.random()*0.3});
    }
    //
    mc.swapDepths(0)
    }
    /////////////////////////////////////////////////
    // Close the Big Image //
    /////////////////////////////////////////////////
    function closeBig(){
    for(i=0; i<count; i++){
    var novoAlvo:MovieClip = _root["novoAlvo"+i]
    addTween(novoAlvo,{_yscale:0, _alpha:0, time:1, transition:"easeInBounce", delay:Math.random()*0.3, onComplete:function(){this.removeMovieClip()}});
    }
    setTimeout(thumbsShow,500);
    verificaPagina()
    enable(close_bt,false, true)
    addTween(close_bt.bg_mc,{_color:0x444444, time:1, transition:"easeInBounce"})
    addTween(close_bt.icone_mc,{_color:0x999999, time:0.1, transition:"easeInBounce"})
    //
    addTween(menu_mc.botoes_mc,{_x:621, time:0.5, transition:"easeInBounce"});
    addTween(menu_mc.bg_mc,{_width:720, time:0.5, transition:"easeInBounce"});
    }
    /////////////////////////////////////////////////
    // A simple function to enabled/disabled a MovieClip //
    /////////////////////////////////////////////////
    function enable(mc:MovieClip, stats:Boolean, transparencia:Boolean) {
    if (stats) {
    mc._alpha = 100
    mc.enabled = mc.useHandCursor=true;
    } else {
    if(transparencia){
    mc._alpha = 50
    }
    mc.enabled = mc.useHandCursor=false;
    }
    }
    /////////////////////////////////////////////////
    /////////////////////////////////////////////////
    function efeitoBt(mc:MovieClip, tipo:String){
    mc.icone_mc.gotoAndStop(tipo)
    mc.onRollOver = function(){
    addTween(this.bg_mc,{_color:0xFF6699, time:0.1, transition:"easeInBounce"})
    addTween(this.icone_mc,{_color:0x000000, time:0.1, transition:"easeInBounce"})
    }
    mc.onRollOut = mc.onDragOut = function(){
    addTween(this.bg_mc,{_color:0x444444, time:1, transition:"easeInBounce"})
    addTween(this.icone_mc,{_color:0x999999, time:0.1, transition:"easeInBounce"})
    }
    }
    /////////////////////////////////////////////////
    /////////////////////////////////////////////////
    efeitoBt(prev_bt, "prev")
    efeitoBt(next_bt, "next")
    efeitoBt(close_bt, "close")
    //
    next_bt.onRelease = proxPagina;
    prev_bt.onRelease = prevPagina;
    close_bt.onRelease = closeBig;
    /////////////////////////////////////////////////
    /////////////////////////////////////////////////
    carregaXML()
    Avrei provato diversi modi ma non riesco a trovare la soluzione.
    Chiunque mi possa illuminare è ben venuto.
    Grazie ancora e scusate il disturbo.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Sarebbe bene che elencassi i modi che hai utilizzato, per evitare a chi ti risponde di riproporre qualcosa che hai già provato.
    Io proverei ad usare il _lockroot.

  3. #3
    Si grazie per la risposta immediata. Allora
    Ho provato con il considerare da subito tutte le root sostuendole con _root.empty.gallery. ma non ha funzionato. Ho riletto più volte il codice, ed ho provato quindi con il parent ma nulla ancora.
    E poi leggendo nei forum ho provato con _lockroot.
    Però forse essendo la prima volta nell'usare _lookroot forse non l'ho usato bene.

    nel frame per caricare il video vi è questo codice:

    stop();
    loadMovie("cafe.swf","empty");
    l'ho corretto con

    stop();
    loadMovie("cafe.swf","empty");
    _root.empty.gallery._lockroot=true;
    non so se ho seguito bene le istruzioni.

    Grazie ancora per l'interessamento saluti

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    No, il _lockroot è meglio scriverlo come prima riga nel codice della gallery in questo modo:
    this._lockroot = true;

  5. #5
    Capperi nulla, ho provato niente. non va.

    swf principale (fotogramma con codice caricamento) ->movieclip "empty" -> swf secondario ->movieclip "gallery" con dentro il codice della gallery a cui nel frame di azioni ho immesso il tuo codice. ma niente.

    Sembra leggere il file xml, attivare tutti i bottoni nel modo giusto, ma non si vedono i thumbs e quindi non li posso cliccare. Li calcola ma non li crea sembra.

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Gli swf si trovano nella stessa cartella? Se li calcola, l'xml viene letto regolarmente, ma se non li carica può darsi che non trovi il percorso indicato.

  7. #7
    Si i file sono tutti nella stessa directory, ma niente non mi funziona. Bah l'ignoranza regna in me!
    Ci sto ancora sbattendo il muso vediamo chi vince!.

    cmq i file li ho caircati qui.

    FILE DI PROVA

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Unexpected file format, ho flash CS3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.