Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Creare un sito caricando SWF esterni con Flash CS3

This is a discussion on Creare un sito caricando SWF esterni con Flash CS3 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; porta pazienza...ahimè non ho grande esperienza e conoscenza in merito...muovo i primi passi...però come lo carichi l'...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #111 (permalink)  
Old 03-08-08, 11:16
Member
 
Join Date: Jul 2008
Posts: 30
Rep Power: 0
dadoge is on a distinguished road
Re: Creare un sito caricando SWF esterni con Flash CS3

porta pazienza...ahimè non ho grande esperienza e conoscenza in merito...muovo i primi passi...però come lo carichi l'XML? che sia in Main o in altro script da qualche parte avrai una funzione del tipo:

Code:
 
  private function loadXML():void
  {
   var loader:URLLoader=new URLLoader();
   loader.addEventListener(Event.COMPLETE,completeHandler);
 
   var request:URLRequest=new URLRequest('events.xml');
   try 
   {
    loader.load(request);
   } 
   catch(error:Error) 
   {
    trace(error+' XML not found.');
   }
  }
per capirci URLRequest('events.xml'); dovrebbe far riferimento al percorso del file XML...al limite prova a metterci URLRequest('sezioni/events.xml');

nel file XML c'è poi il percorso di ciò che vuoi caricare ovvero qualcosa di simile a thumbs/thumb_0.jpg che potrebbe diventare sezioni/thumbs/thumb_0.jpg

al di là di questi due punti critici non mi pare ci siano alternative...comunque nei sorgenti che ho allegato nel link che ti ho messo c'è una situazione simile alla tua...e funziona tutto a dovere...

...ti chiederei invece un gran favore...nel momento in cui sarai riuscito a far funzionare il tutto, vorrei capire come fare a caricare animazioni indipendentemente dalla loro struttura...per capirci finchè in Sezioni metto semplici animazioni tutto bene ma se voglio caricare ad esempio il PhotoNavigator descritto nelle FlepUtility nascono i problemi...ahimè ho abbandonato l'impresa optando per una gestione separata tramite iframe (che funziona alla grande e pubblicherò in altro post) ma rimane il gran cruccio di non riuscire a risolvere questo problema...

Buona Domenica
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #112 (permalink)  
Old 03-08-08, 15:08
Junior Member
 
Join Date: Mar 2008
Posts: 11
Rep Power: 0
carnifexino is on a distinguished road
Riferimento: Re: Creare un sito caricando SWF esterni con Flash CS3

Quote:
Originally Posted by dadoge View Post
porta pazienza...ahimè non ho grande esperienza e conoscenza in merito...muovo i primi passi...però come lo carichi l'XML? che sia in Main o in altro script da qualche parte avrai una funzione del tipo:

Code:
 
  private function loadXML():void
  {
   var loader:URLLoader=new URLLoader();
   loader.addEventListener(Event.COMPLETE,completeHandler);
 
   var request:URLRequest=new URLRequest('events.xml');
   try 
   {
    loader.load(request);
   } 
   catch(error:Error) 
   {
    trace(error+' XML not found.');
   }
  }
per capirci URLRequest('events.xml'); dovrebbe far riferimento al percorso del file XML...al limite prova a metterci URLRequest('sezioni/events.xml');

nel file XML c'è poi il percorso di ciò che vuoi caricare ovvero qualcosa di simile a thumbs/thumb_0.jpg che potrebbe diventare sezioni/thumbs/thumb_0.jpg

al di là di questi due punti critici non mi pare ci siano alternative...comunque nei sorgenti che ho allegato nel link che ti ho messo c'è una situazione simile alla tua...e funziona tutto a dovere...

...ti chiederei invece un gran favore...nel momento in cui sarai riuscito a far funzionare il tutto, vorrei capire come fare a caricare animazioni indipendentemente dalla loro struttura...per capirci finchè in Sezioni metto semplici animazioni tutto bene ma se voglio caricare ad esempio il PhotoNavigator descritto nelle FlepUtility nascono i problemi...ahimè ho abbandonato l'impresa optando per una gestione separata tramite iframe (che funziona alla grande e pubblicherò in altro post) ma rimane il gran cruccio di non riuscire a risolvere questo problema...

Buona Domenica
Ho provato a cambiare i percorsi come suggerisci ma nulla... non ne vuole sapere di caricare la falleria di foto (stesso tuo identico problema).

La galleria in se stessa funziona bene... il codice è un po' particolare in quanto carica una serie di thumbs disponendole su 4 colonne:
Code:
import fl.transitions.Tween;
import fl.transitions.easing.*;

var fadeTween:Tween;
var imageLoaderThumbs:Loader;
var imageLoaderGrande:Loader;
var xml:XML;
var xmlList:XMLList;
var xmlLoader:URLLoader = new URLLoader();
var colonne:int=4
var lato:int=51;
var spazio_sinistra:int=1;

imageLoaderGrande = new Loader();
addChild(imageLoaderGrande);

xmlLoader.load(new URLRequest('foto.xml'));
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);

function xmlLoaded(event:Event):void
{
    xml = XML(event.target.data);
    xmlList = xml.children();
    for(var i:int = 0; i < xmlList.length(); i++)
    {
        imageLoaderThumb = new Loader();
        imageLoaderThumb.load(new URLRequest(xmlList[i].attribute('thumb')));
        imageLoaderThumb.x = 497 + spazio_sinistra + ( i % colonne ) * lato;
        imageLoaderThumb.y = spazio_sinistra + Math.floor( i  / colonne ) * lato;
        addChild(imageLoaderThumb);
        imageLoaderThumb.addEventListener(MouseEvent.CLICK, showPicture);
    }
                                        
}

function showPicture(event:MouseEvent):void
{
    removeChild(imageLoaderGrande);
    imageLoaderGrande = new Loader();
    imageLoaderGrande.load(new URLRequest(event.target.name));
    imageLoaderGrande.x = 1;
    imageLoaderGrande.y = 1;
    fadeTween = new Tween(imageLoaderGrande,"alpha",Regular.easeOut,0,1,1,true);
    addChild(imageLoaderGrande);
}
Mi sa che farò come dici tu e risolverò con i frame... le ho provate tutte ormai.
Flep dove sei?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #113 (permalink)  
Old 04-08-08, 10:33
Member
 
Join Date: Jul 2008
Posts: 30
Rep Power: 0
dadoge is on a distinguished road
Re: Creare un sito caricando SWF esterni con Flash CS3

...non avevo capito la situazione...

...per quel che intuisco dagli errori generati l'animazione che carica dovrebbe avere un movieclip in grado di gestire l'animazione caricata...se così è mi pare un gran casino (oltre a non aver capito come dovrebbe accoglierla) perchè varierebbe di caso in caso...a discapito della flessibilità...

con gli iframe ho fatto così:

in ActionScript:

...

import flash.external.*;

...

private function init(evt:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE,init);

stage.frameRate=31;

url_array=new Array(
'pagina1.html',
'workshop/PhotoNavigator/main_photoview.html',
'pagina3.html',
'pagina4.html',
'pagina5.html',
'pagina6.html',
'pagina7.html',
'pagina8.html',
'pagina9.html',
'pagina10.html');

initMenu();
createContainers();
loadXML();
}

...

private function goURL(evt:MouseEvent):void
{

var link:String=url_array[evt.target.id]

ExternalInterface.call("cambia",link);

}
...



in HTML nel main.html generato dalla pubblicazione, ho aggiunto:

HTML Code:
    
    function cambia(url)
   {
   window.frames["pagina"].location.href = url;
window.iframeName.location.href = url;
   }
    
 
...
 
  
in pratica in apertura visualizza pagina1. html, e cliccando sul menù in flash sostituisce le varie pagine...il risultato è lo stesso di quello che volevo ottenere...

...carina la tua idea, metti un link appena funzionerà tutto?

Ciao
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #114 (permalink)  
Old 04-08-08, 10:37
Member
 
Join Date: Jul 2008
Posts: 30
Rep Power: 0
dadoge is on a distinguished road
Re: Creare un sito caricando SWF esterni con Flash CS3

...non mi ha pubblicato l'iframe...ci riprovo omettendo un <...

HTML Code:
 
 
 
 iframe name="pagina" src="pagina1.html" width="1000" height="650" frameborder="0" >  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #115 (permalink)  
Old 04-08-08, 13:50
Junior Member
 
Join Date: Mar 2008
Posts: 11
Rep Power: 0
carnifexino is on a distinguished road
Riferimento: Creare un sito caricando SWF esterni con Flash CS3

Buona l'idea degli iframe, anche se un po' off topic

Leggevo sul sito di Adobe che il nostro problema è generato probabilmente da una caratteristica del nuovo flash player che non permette il caricamento di alcuni file xml per motivi di sicurezza.
Per aggirarlo suggeriscono di installare un debugger e fare un milione di altre cose che non ho capito perchè sono troppo ignorante in materia
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Flash Multi Gallery
  #116 (permalink)  
Old 06-09-08, 22:43
Junior Member
 
Join Date: Aug 2008
Posts: 7
Rep Power: 0
blacklotus79 is on a distinguished road
Re: Creare un sito caricando SWF esterni con Flash CS3

TypeError: Error #1034: Assegnazione di tipo forzata non riuscita: impossibile convertire flash.display::MovieClip@3123af1 in flash.display.SimpleButton.

TypeError: Error #2007: Il valore del parametro child deve essere diverso da null.
at flash.display::DisplayObjectContainer/swapChildren()
at Main/swappa()
at Main/completato()

Forse faccio richieste stupide ma è da un po che nessuno mi aiuta...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #117 (permalink)  
Old 01-10-08, 10:08
Member
 
Join Date: Feb 2008
Posts: 44
Rep Power: 0
derek_z is on a distinguished road
Re: Creare un sito caricando SWF esterni con Flash CS3

flep, ciao...
senti, ma se volessi solo 4 sezioni, e soprattutto, se NON volessi l'intro iniziale (logo+btn entra) e la possibilità di tornare alla home...come posso fare?
ho cancellato delle parti di action ma non funziona....

grazie mille

te lo incollo di seguito:

/*
********************************
* Flash CS3 Blog con Tutorial e risorse per Flash cs3 e Actionscript 3.0 *
* @ Author: Filippo Lughi *
********************************
*/
package
{
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.*;

public class Main extends MovieClip
{
private var sezioni_array:Array;
private var bottoni_sezioni_array:Array;

private var loader:Loader;

private var swf:String;

private var id:int=0;

public function Main()
{
init();
}

private function init():void
{
stop();
stage.frameRate=31;

home_btn.visible=false;
menu_mc.visible=false;
preloader_mc.visible=false;
preloader_mc.fill_mc.width=0;

sezioni_array=new Array(
'http://www.flepstudio.org/swf/sito_tutorial/sezioni/sezione1.swf',
'http://www.flepstudio.org/swf/sito_tutorial/sezioni/sezione2.swf',
'http://www.flepstudio.org/swf/sito_tutorial/sezioni/sezione3.swf',
'http://www.flepstudio.org/swf/sito_tutorial/sezioni/sezione4.swf');
bottoni_sezioni_array=new Array(menu_mc.sezione_1_mc,menu_mc.sezione_2_mc,
menu_mc.sezione_3_mc,menu_mc.sezione_4_mc,
menu_mc.sezione_5_mc);

aggiungiListenerMenu();
}


private function aggiungiListenerMenu():void
{
for(var i:int=0;i < bottoni_sezioni_array.length;i++)
{
bottoni_sezioni_array[i].id=i;
bottoni_sezioni_array[i].addEventListener(MouseEvent.MOUSE_DOWN,cambiaSezi one);
}
}

private function entra(m:MouseEvent):void
{
this.gotoAndStop(2);
caricaHome();
}

private function tornaHome(m:MouseEvent):void
{
id=0;
loader.unload();
removeChild(loader);
rimuoviListeners(loader.contentLoaderInfo);
caricaHome();
}

private function caricaHome():void
{
swf=sezioni_array[0];
var request:URLRequest=new URLRequest(swf);
loader=new Loader();
initListeners(loader.contentLoaderInfo);
loader.load(request);
id=0;
}

private function cambiaSezione(m:MouseEvent):void
{
id=m.target.parent.id+1;
loader.unload();
removeChild(loader);
rimuoviListeners(loader.contentLoaderInfo);
caricaSezione(m.target.parent.id+1);
}

private function caricaSezione(n:int):void
{
swf=sezioni_array[id];
var request:URLRequest=new URLRequest(swf);
loader=new Loader();
initListeners(loader.contentLoaderInfo);
loader.load(request);
}

private function initListeners(dispatcher:IEventDispatcher):void
{
dispatcher.addEventListener(Event.OPEN,inizia);
dispatcher.addEventListener(ProgressEvent.PROGRESS ,inCaricamento);
dispatcher.addEventListener(Event.COMPLETE,complet ato);
}

private function rimuoviListeners(dispatcher:IEventDispatcher):void
{
dispatcher.removeEventListener(Event.OPEN,inizia);
dispatcher.removeEventListener(ProgressEvent.PROGR ESS,inCaricamento);
dispatcher.removeEventListener(Event.COMPLETE,comp letato);
}

private function inizia(event:Event):void
{
menu_mc.visible=false;
preloader_mc.visible=true;
}
private function inCaricamento(event:ProgressEvent):void
{
var n:uint=(event.bytesLoaded/event.bytesTotal)*100;
preloader_mc.fill_mc.width=n;
}
private function completato(event:Event):void
{
addChild(loader);
swappa();
preloader_mc.visible=false;
if(id!=0)
home_btn.visible=true;
else
home_btn.visible=false;
menu_mc.visible=true;
}

private function swappa():void
{
swapChildren(loader,menu_mc);
swapChildren(home_btn,loader);
}
}
}
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #118 (permalink)  
Old 14-11-08, 16:40
Junior Member
 
Join Date: Oct 2008
Posts: 14
Rep Power: 0
simone75 is on a distinguished road
Re: Creare un sito caricando SWF esterni con Flash CS3

Ciao Flep,
complimenti per il tutorial, è molto chiaro e non è difficile da personalizzare. Però sono arrivato ad un punto in cui mi sono perso.... e mi servirebbe il tuo aiuto.
Dal tuo esempio ho tolto l'animazione iniziale entra ed ho messo in automatico l'apertura del primo swf sulla posione 0 dell'Array.
La pagina di riferimento l'ho lasciata con il nome 'main' con dimensioni di 1024x768 ed in automatico dovrebbe caricarsi profilo.swf ed è qui che è nato il problema. Anche profilo.fla ha una document class (profilo.as) nella quale ho inserito le funzioni che mi ridimensionano lo stage in base alla risoluzione del monitor e fà sì che mi si ridimensioni anche una immagine che sta sullo stage. Non sò se questo provoca un conflitto tra i due swf.....

quindi ho il file main.fla con document class main.as e questo è il codice che ho in main.as:

Code:
package
{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.display.Loader;
    import flash.net.URLRequest;    
    import flash.events.*;
    
    public class main extends MovieClip
    {
        private var sezioni_array:Array;
        private var bottoni_sezioni_array:Array;
        
        private var loader:Loader;
        
        private var swf:String;
        
        private var id:int=0;
        
        public function main()
        {
            init();
        }
        
        private function init():void
        {
            stage.frameRate=31;
        
            menu_mc.visible=false;
            preloader_mc.visible=false;
            preloader_mc.fill_mc.width=0;
            
            sezioni_array=new Array('profilo.swf',
            'prodotti.swf',
            'qualita.swf',
            'novita.swf',
            'eventi.swf');
            bottoni_sezioni_array=new Array(menu_mc.sezione_1_mc,menu_mc.sezione_2_mc,
            menu_mc.sezione_3_mc,menu_mc.sezione_4_mc,
            menu_mc.sezione_5_mc);
            
            entra();
            aggiungiListenerMenu();            
        }
        
        private function aggiungiListenerMenu():void
        {
            for(var i:int=0;i < bottoni_sezioni_array.length;i++)
            {
                bottoni_sezioni_array[i].id=i;
                bottoni_sezioni_array[i].addEventListener(MouseEvent.MOUSE_DOWN,cambiaSezione);
            }
        }

        private function entra():void
        {
            swf=sezioni_array[0];
            var request:URLRequest=new URLRequest(swf);
            loader=new Loader();
            initListeners(loader.contentLoaderInfo);
            loader.load(request);
            id=0;
        }

        private function cambiaSezione(m:MouseEvent):void
        {
            id=m.target.parent.id+1;
            loader.unload();
            removeChild(loader);
            rimuoviListeners(loader.contentLoaderInfo);
            caricaSezione(m.target.parent.id+1);
        }
        
        private function caricaSezione(n:int):void
        {
            swf=sezioni_array[id];
            var request:URLRequest=new URLRequest(swf);
            loader=new Loader();
            initListeners(loader.contentLoaderInfo);
            loader.load(request);
        }
        
        private function initListeners(dispatcher:IEventDispatcher):void 
        {
            dispatcher.addEventListener(Event.OPEN,inizia);
            dispatcher.addEventListener(ProgressEvent.PROGRESS,inCaricamento);
            dispatcher.addEventListener(Event.COMPLETE,completato);
        }
        
        private function rimuoviListeners(dispatcher:IEventDispatcher):void 
        {
            dispatcher.removeEventListener(Event.OPEN,inizia);
            dispatcher.removeEventListener(ProgressEvent.PROGRESS,inCaricamento);
            dispatcher.removeEventListener(Event.COMPLETE,completato);
        }
        
        private function inizia(event:Event):void 
        {
            menu_mc.visible=true;
            preloader_mc.visible=true;
        }
        private function inCaricamento(event:ProgressEvent):void 
        {
            var n:uint=(event.bytesLoaded/event.bytesTotal)*100;
            preloader_mc.fill_mc.width=n;
        }
        private function completato(event:Event):void 
        {
            addChild(loader);
            swappa();
            preloader_mc.visible=false;
            menu_mc.visible=true;
        }
        
        private function swappa():void
        {
            swapChildren(loader,menu_mc);
        }        
    }
}
in automatico mi carica profilo.swf e questo è il codice di profilo.as
Code:
package
{
    import flash.display.MovieClip;
    import flash.events.Event;
    
    public class profilo extends MovieClip
    {        
        public function profilo()
        {
            init();
            checkResize();
        }
        
        private function init():void
        {
            var rapp:Number = clip_mc.width/clip_mc.height;
            stage.frameRate=31;
            
            bg_mc.x=0;
            bg_mc.y=0;
            bg_mc.width=stage.stageWidth;
            bg_mc.height=stage.stageHeight;
            clip_mc.height=stage.stageHeight;        
            clip_mc.width=stage.stageHeight*rapp;            
            clip_mc.x=stage.stageWidth;
            clip_mc.y=stage.stageHeight;
        }
        private function checkResize():void
        {
            stage.addEventListener(Event.RESIZE, resizeStage);
        }
        private function resizeStage(event:Event):void
        {
            init();
        }        
    }
}
e questo è l'errore che mi genera quando provo il filmato:
Code:
TypeError: Error #1009: Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null.
    at profilo/init()
    at profilo()
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
Flash CS3 Creare un sito con Flash CS3 da ZERO!!!! Ruchino90 Flash CS3 Design 2 30-08-08 17:35
Photoshop CS3 Creare un layout per un sito internet Flep PhotoShop 4 21-07-08 12:59
Actionscript 3 Lettura File Esterni: workaround per evitare la security di flash Rocco2X Actionscript 3.0 avanzato 0 19-06-08 14:47
Creare una Chat dentro un sito completamente flash robinhood11 AIUTO utilità free 1 14-02-08 14:45
Info tutorial: Creare un sito caricando SWF esterni con Flash CS3 SWFish Actionscript 3.0 base 18 13-11-07 18:34


All times are GMT. The time now is 11:09.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406