Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    13

    Delimitare area funzionamento swf esterno...o quasi!!

    Salve, sono nuovo del forum e di flash!!

    Utilizzo Flash 8 Professional e Action Script 2.0

    Illustro il problema nella sequenza con cui mi si è presentato.

    Inizialmente, ho creato un swf in cui è possibile disegnare col mouse, come segue:

    Impostazioni filmato 600x400, colore di sfondo nero;
    nella scena1/livello1/frame1 ho scritto:

    fscommand (allowscale = false);

    poi ho creato un mc con nome istanza ''matita'' in cui ho inserito il seguente codice nel frame1:

    _parent.onMouseDown = function() {
    _parent.lineStyle(2, 0xFFFFFF, 100);
    _parent.moveTo(_parent._xmouse, _parent._ymouse);
    isDrawing = true;
    };
    _parent.onMouseMove = function() {
    if (isDrawing == true) {
    _parent.lineTo(_parent._xmouse, _parent._ymouse);
    updateAfterEvent();
    }
    };
    _parent.onMouseUp = function() {
    isDrawing = false;
    };
    clear_btn.onRelease = function() {
    _root.clear();
    }

    Fin qui tutto bene. L'swf funziona e la matita scrive. L'swf si chiama "penbianco.swf"

    Io ho però la necessità di caricare questo ''accessorio'' dentro un altro filmato ''index.swf''...è chiaro però che quando carico penbianco.swf questo non mi carica lo sfondo ma solo il ''pennino'', poiché lo sfondo del .fla orginale non viene importato dentro l*.swf principale che richiama il secondo.swf...in questo caso index.swf carica solo il pennino di ''penbianco.swf''; ho quindi creato un altro swf, dove ho costruito lo sfondo della lavagnetta e l'ho chiamato ''lavagna.swf'', e vi ho inserito un bottone (di tipo movie clip) e gli ho associato lo script:

    bianco.onRelease = function (){
    loadMovie ("penbianco.swf", 2);
    }

    per caricare ''penbianco.swf'' ad un livello superiore, in modo che scriva su di uno sfondo visibile e reale, perché altrimenti scriverebbe al di sotto di tutti i livelli visibili.

    A questo punto, ho creato un pulsante nell'*.swf principale, cioé ''index.swf'' che mi richiama ''lavagna.swf'' dove posso caricare i vari pennelli bianco, rosso, etc...con un procedimento identico a ''penbianco.swf'',

    IL PROBLEMA:

    i vari pennelli mi scrivono su tutto ''index.swf''...come faccio a delimitare l'area di azione dei pennelli affinche scrivano solo dentro ''lavagna.swf''

    P.S.
    lavagna.swf è di dimensioni 600x400
    index.swf è di dimensioni 1024x768


    Grazie anticipatamente!!

  2. #2
    penso che tu posa lavorare con una maschera

    questo il mio codice ovviamente da adattare

    http://www.rempox.it/forum/extra/lavagna/lavagna.html

    http://www.rempox.it/forum/extra/lavagna/lavagna.fla

    Codice PHP:
    lavagna.setMask(mask)

    this.onMouseDown = function() {
        if (
    gessetto.hitTest(this.lavagna)){
            
    trace("true")
            
    mc lavagna.createEmptyMovieClip("desktop",1)
              
    mc.lineStyle(100xFFFFFF100);
              
    mc.moveTo(gessetto._x-lavagna._xgessetto._y-lavagna._y);
            
            
    isDrawing true;
        }else{
            
    trace("false")
            
    isDrawing true;
        }
    };

    this.onMouseUp = function() {
         
    isDrawing false;
    };


    this.onMouseMove = function(){
        
    Mouse.hide()
        
    gessetto._x this._xmouse
        gessetto
    ._y this._ymouse
        
    if(gessetto.hitTest(lavagna)){
            if (
    isDrawing == true && gessetto.hitTest(this.lavagna)) {
          
             
    lavagna.desktop.lineTo(gessetto._x-lavagna._xgessetto._y-lavagna._y);
          
       }
       
    updateAfterEvent();
                         
                         }


  3. #3
    scusa mi sono complicato la vita per nullla

    Codice PHP:
    fscommand (allowscale false);

    lavagna.setMask(mask)

    mc lavagna.createEmptyMovieClip("desktop",10)

    mc.onMouseDown = function() {
        
              
    this.lineStyle(100xFFFFFF50);
              
    this.moveTo(_xmouse-lavagna._x_ymouse-lavagna._y);
            
            
    isDrawing true;
        
    };

    mc.onMouseUp = function() {
         
    isDrawing false;
    };


    mc.onMouseMove = function(){
        
    this.lineTo(_xmouse-lavagna._x_ymouse-lavagna._y);
        
        
    updateAfterEvent();



  4. #4
    mentre lavoravo al tuo problema mi è venuto in mente questo che +o- è sullo stesso principio. A chi dovesse interessare si faccia vivo.


    http://www.rempox.it/forum/extra/lav...a_scritta.html

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    13
    Grazie rempox, funziona tutto perfettamente
    Grazie mille!!

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    39
    Ragazzi, è proprio quello che cercavo, solo un piccolo problema quando disegno una linea e poi riclicco sulla lavagna la linea di prima si cancella per evitare questo che devo aggiungere nel codice?

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Apri un nuovo thread, linkando al massimo questo per spiegarti meglio. I thread molto vecchi riportati su, vengono normalmente chiusi.

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.