Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-06-2010, 16:07   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2009
Beiträge: 33
Klassen werden nicht geladen

hey leute, folgendes problem:

ich habe ne swf die klassen lädt. diese klassen bearbeiten bilder die vorher schon geladen wurden.
auf meinem pc klapt das sogar alles perfekt.
nachdem ich die swf mit den klassen auf meinen server geladen hatte und startete, wurden zwar die bilder geladen, doch nicht bearbeitet.

folglich wurden die klassen nicht geladen nehme ich an, wieso?

so schauts im ordner aus:

|-pictureLoader.swf
|-+Klassen
|--picHandlerC.as

weiß jetzt auch nicht genau welchen code ausschnitt ich zeigen soll darum lasse ich das vorerst (zu viel code und zu unordentlich xP)

aber wie gesagt, auf dem pc klapte alles perfekt
Xenn ist offline   Mit Zitat antworten
Alt 08-06-2010, 16:09   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Klassen kompiliert man, SWFs lädt man. Der Unterschied ist klar?
Omega Psi ist offline   Mit Zitat antworten
Alt 08-06-2010, 16:12   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2009
Beiträge: 33
unterschied zwischen kompilieren und laden ja
aber helfen tuts gerade nicht wirklich

edit: ok doch das ergibt jetzt sin xD

d.h. man bräuchte auf dem server einen kompiler...
aber kann man nen kompiler auf dem server installieren? oder wie korrigiert man das?

Geändert von Xenn (08-06-2010 um 16:16 Uhr)
Xenn ist offline   Mit Zitat antworten
Alt 08-06-2010, 16:17   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Nun ja, da du Klassen nicht lädst, weiss ich nicht, wie du mit den Klassen arbeitest, wenn du es "laden" nennst.
Omega Psi ist offline   Mit Zitat antworten
Alt 08-06-2010, 16:28   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2009
Beiträge: 33
ok, dann nennen wir es...deklarieren? bin mit den fachwörtern leider nicht so vertraut.

oder einbinden

hier die code zeile aus der ".fla" datei:

Code:
var picHan:picHandlerC=new picHandlerC();
...
picHan.posPics(arPic,a,stageScale,scale);

Geändert von Xenn (08-06-2010 um 16:37 Uhr)
Xenn ist offline   Mit Zitat antworten
Alt 08-06-2010, 16:35   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Wie Omega Psi schon sagte kann das nicht daran liegen, das die as-Dateien nicht geladen werden können, weil die gar nicht geladen werden müssen: Das Script in der .as wird beim Compilieren (Veröffentlichen) in die SWF integriert. as-Dateien haben deshalb genauso wie flas nichts auf dem Server zu suchen.

Dein Fehler muss also irgendwo anders liegen. Von wo lädst Du denn die Bilder nach? Ich habe z.B. mal gemerkt, dass Flash es aus Sicherheitsgründen z.B. standartgemäß nicht erlaubt Daten von anderen Domains in eine BitmapData zuzeichnen (was picHandlerC aber wohl macht)...
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (08-06-2010 um 16:37 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 08-06-2010, 16:39   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2009
Beiträge: 33
die bilder lade ich aus einem unterordner, also von meinem server selber in einem ordner namens Pictures
aber wie gesgat die bilder werden ja geladen Oo
wüsste auch nicht weshalb es daran legen könnte hmm...
Xenn ist offline   Mit Zitat antworten
Alt 08-06-2010, 16:43   #8 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Ohne Einblick in den entsprechenden Code wird Dir da niemand weiterhelfen können.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 08-06-2010, 16:49   #9 (permalink)
Neuer User
 
Registriert seit: Dec 2009
Beiträge: 33
na dann, hier xP, wollte es vermeiden aber wennes nicht geht, hier die .fla:

PHP-Code:
import Klassen.*;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.display.Graphics;

var 
picHan:picHandlerC=new picHandlerC();
var 
txtHan:txtHandlerC=new txtHandlerC();

var 
mousea:uint;
var 
stageScale:Number=stage.stageWidth;
var 
mouseb:uint;
var 
booMouse:Boolean=false;
var 
ul:URLLoader=new URLLoader(new URLRequest("datenBank.txt"));
var 
st:String;
var 
_suchString:String="||";
var 
a:int=0;
var 
b:uint;
var 
höhe2:Number=50;
var 
breite2:Number=0;
var 
num:uint=0;
var 
i:uint;
var 
j:uint;
var 
k:uint;
var 
l:uint;
var 
ii:uint;
var 
jj:uint;
var 
kk:uint;
var 
ll:uint;
var 
arPic:Array=[];
var 
arSt:Array=[];
var 
ar:Array=[];
var 
arBack:Array=[];
var 
urlReq:URLRequest;
var 
mc:MovieClip;
var 
scale:int=200;
var 
abstand:uint=20;
var 
mc2:MovieClip=new MovieClip;
var 
temp:Number=0;
var 
gr:Graphics=graphics;

gr.lineStyle(1,0xff0000,1);
gr.moveTo(0,2);
gr.lineTo(800,2);
gr.moveTo(0,4);
gr.lineTo(802.7,4);

trace(stage.stageWidth);

stage.align=StageAlign.TOP_LEFT;
stage.scaleMode StageScaleMode.NO_SCALE;

ul.addEventListener(Event.COMPLETEcompleteHandler);

function 
completeHandler(event:Event):void {
    
    var 
ul2:URLLoader URLLoader(ul);
    
    
st=ul2.data;    
    
arSt=txtHan.handle(st,_suchString);    
    
a=arSt.pop()-1;
    
    for(
i=0;i<=a;i++){
    
        
_text.text+=i+" "+arSt[i]+"\n";

    }
    
i=0;
    
l=0;
    
loadPics();
    
}
//
function loadPics(){
    
    
_mc2Schleife();
    
urlReq= new URLRequest("Pictures/"+arSt[i]);
    var 
ldr:Loader = new Loader();
    
configureListeners(ldr.contentLoaderInfo);
    
ldr.load(urlReq);
    
ldr.contentLoaderInfo.addEventListener(Event.COMPLETEimgLoaded);
    
//ldr.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

}

function 
_mc2Schleife(){

    
mc2=new MovieClip;
    
mc2.graphics.lineStyle(1,0xffffff,1);
    
mc2.graphics.beginFill(0xffffff,0.2);
    
mc2.graphics.drawRect(0,0,scale+1,scale+1);
    
mc2.graphics.endFill();
    
arBack.push(mc2);
    
addChild(arBack[i]);
            
    if(((
i-l)*scale)+10>=stageScale){
                
        
j+=1;
        
l=i;
                
    }

}

function 
configureListeners(dispatcher:IEventDispatcher):void {
    
    
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUShttpStatusHandler);
    
dispatcher.addEventListener(Event.INITinitHandler);
    
dispatcher.addEventListener(IOErrorEvent.IO_ERRORioErrorHandler);
    
dispatcher.addEventListener(Event.OPENopenHandler);
    
dispatcher.addEventListener(ProgressEvent.PROGRESSprogressHandler);
    
dispatcher.addEventListener(Event.UNLOADunLoadHandler);

}
function 
httpStatusHandler(event:HTTPStatusEvent):void {
    
//trace("httpStatusHandler: " + event);
}
function 
initHandler(event:Event):void {
    
//trace("initHandler: " + event);
}
function 
ioErrorHandler(event:IOErrorEvent):void {
    
//trace("ioErrorHandler: " + event);
}
function 
openHandler(event:Event):void {
    
//trace("openHandler: " + event);
}
function 
progressHandler(event:ProgressEvent):void {
    
//trace(i+": progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
    
    
if(event.bytesLoaded>=event.bytesTotal){
        
        if(
i<a){            
            
            
i+=1;
            
loadPics();
            
        }
    }
}
function 
unLoadHandler(event:Event):void {
    
//trace("unLoadHandler: " + event);
}
function 
clickHandler(event:MouseEvent):void {
    
//trace("clickHandler: " + event);
    /*var loader:Loader = Loader(event.target);
    loader.unload();*/
}


function 
imgLoaded(event:Event):void
    
    var 
image:Bitmap Bitmap(event.target.content); 
    var 
bmd:BitmapData image.bitmapData;
    
    
arPic.push(new Bitmap(bmd));//hier jeweils neue Instanz aus den BitmapDaten anlegen, sonst wird immer dasselbe Bitmap-Objekt benutzt!
    
addChild(arPic[b]);
    
    
b++;
    
    if(
b>a){
        
        
j=0;
        
l=0;
        
        
picHan.scalePics(arPic,a,scale);
        
_posPic();        
        
    }
    
}

function 
_posPic(){
    
    
/*for(i=0;i<=a;i++){
        
        if(((i-l)*scale)+10>=stage.stageWidth){
            j+=1;
            l=i;
        }
        
        arPic[i].x=((i-l)*(arPic[i].width+(scale-arPic[i].width)+10))+((scale-arPic[i].width)/2)+10;
        arPic[i].y=((scale-arPic[i].height)/2)+(j*scale+10*j)+10;

    }*/
    
    
picHan.posPics(arPic,a,stageScale,scale);
    
stage.addEventListener(Event.ENTER_FRAME_stage);
    
}

function 
_posBack(){
    
    for(
ii=0;ii<=a;ii++){
        
        if(((
ii-ll)*scale)+10>=stageScale){
                
            
jj+=1;
            
ll=ii;
                
        }
            
        
arBack[ii].x=(ii-ll)*(scale+10)+9;
        
arBack[ii].y=jj*(scale+10)+9;

    }
    
}

function 
_stage(e:Event):void{
    
j=0;
    
l=0;
    
jj=0;
    
ll=0;
    
    
_posPic();
    
_posBack();

    for(
i=0;i<=a;i++){
    
        if((
mouseX>=arBack[i].x) && (mouseX<=arBack[i].x+scale)&&
           (
mouseY>=arBack[i].y) && (mouseY<=arBack[i].y+scale)){
        
            
arBack[i].alpha+=.5;
            if(
arBack[i].alpha>=5){arBack[i].alpha=5;}
        
        }else{
arBack[i].alpha-=.5;
        if(
arBack[i].alpha<=.2){arBack[i].alpha=.2;}}

        

    }


hier die Klasse:

PHP-Code:
package  Klassen{
    
    public class 
picHandlerC {
        
        public function 
scalePics(ar:Array,a:uint,scale:uint) {
            
            var 
pw:Number=0;
            
            
            for(var 
i:uint=0;i<=a;i++){
            
                
//dieser teil ist zur skalierung von zu großen bildern (nur zum testen)
                
if(ar[i].height>=scale){
                    
                    
pw=scale/ar[i].width;
                    
ar[i].height*=pw;
                                
                }
                
                
//dieser teil ist zur skalierung von zu kleinen bildern (nur zum testen)
                
                
if(ar[i].height<=scale){
                
                    
pw=scale/ar[i].height;
                    
ar[i].width*=pw;
                
                }
                
                
ar[i].width=scale;
                
                if(
ar[i].height>=scale){
                    
                    if(
ar[i].width>=scale){
                    
                        
pw=scale/ar[i].height;
                        
ar[i].width*=pw;
                                    
                    }
                
                    if(
ar[i].width<=scale){
                    
                        
pw=scale/ar[i].width;
                        
ar[i].height*=pw;
                    
                    }
                    
                    
ar[i].height=scale;
                
                }
                                
            }
            
            return 
ar;
            
        }
        
        public function 
posPics(ar:Array,a:uint,stageScale:Number,scale:uint) {
        
        var 
j:uint=0;
        var 
l:uint=0;
        
            for(var 
i:uint=0;i<=a;i++){
                
                if(((
i-l)*scale)+10>=stageScale){
                    
j+=1;
                    
l=i;
                }
                
                
ar[i].x=((i-l)*(ar[i].width+(scale-ar[i].width)+10))+((scale-ar[i].width)/2)+10;
                
ar[i].y=((scale-ar[i].height)/2)+(j*scale+10*j)+10;
        
            }
            
            return 
ar;
        }

    }
    


also nochmal zum fehler, wie gesagt, die bilder werden nicht bearbeitet, für die bearbeitung ist halt die klasse zuständig

edit:

also wie es scheint liegts doch nicht daran das die klasse nicht gefunden wurde oder ähnliches
muss also an was anderem liegen...

Geändert von Xenn (08-06-2010 um 17:03 Uhr)
Xenn ist offline   Mit Zitat antworten
Alt 08-06-2010, 17:05   #10 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Das einzige was ich jetzt auf die Schnelle sehe ist, dass ich den EventHandler vor die Load-Anweisung nehmen würden:
PHP-Code:
ldr.contentLoaderInfo.addEventListener(Event.COMPLETEimgLoaded);
ldr.load(urlReq); 
Ansonsten schreib Dir mal an einigen Stellen trace()s rein, damit du (z.B. mit dem Firefox-AddOn FlashBug und dem Debug-Player) sehen kannst, welche Funktione überhaupt ausgeführt werden.

Ich würde vermuten, dass die imgLoaded nicht aufgerufen wird, das falsche target erhält oder irgendwo die Variablen a und b durcheinandergeraten, weil die Bilder in einer anderen Reihenfolge ankommen als sie geladen werden.


P.S: Du hast übrigens eine interessante Art Klassen zu verwenden, so ganz ohne Konstruktor, als willenlose Funktions-Container. Für sowas wurden die eigentlich nicht erfunden.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (08-06-2010 um 17:17 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 08-06-2010, 17:11   #11 (permalink)
Neuer User
 
Registriert seit: Dec 2009
Beiträge: 33
ok thx, das probiere ich mal aus^^

das weiß ich, aber ich habe meine gründe weshalb ich das so mache
Xenn ist offline   Mit Zitat antworten
Alt 08-06-2010, 17:16   #12 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Mag sein, Du wärst da nur mit static deklarierten Funktionen besser aufgehoben. Die kann man wie Math.random(); ohne Instanz aufrufen.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (08-06-2010 um 18:53 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 08-06-2010, 18:45   #13 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.040
Zitat:
Zitat von Xenn Beitrag anzeigen
das weiß ich, aber ich habe meine gründe weshalb ich das so mache
Schlechtes Argument. Klar kann man so programmieren wie man möchte, aber wenn es zur Teamarbeit wird (was es hiermit tut) sind gewisse Konventionen und deren Einhaltung 'ne praktische Sache.
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 08-06-2010, 18:53   #14 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Ein default Konstruktor wird immer gebaut.
Omega Psi ist offline   Mit Zitat antworten
Alt 08-06-2010, 19:00   #15 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Irgendwie hab ich das Gefühl, dass viele in AS3 immer noch die Funktionaltät simulieren wollen, die sie von #include aus AS1 kennen, und dafür auch umständliche Wege wie das instanziieren einer zweckfreien Klasse in Kauf nehmen...

(@Xenn: Das bezieht sich nicht nur auf Dich sondern ist wirklich häufig der Fall.)
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (08-06-2010 um 19:15 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
actionscript 3.0, klassen, oop

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Error: AS2-Klassen können nicht geladen werden h-h-george Flash 8 11 17-11-2008 23:07
Air Klassen werden nicht gefunden. petegeller Adobe AIR 3 07-11-2008 19:01
Klassen werden nicht in SWF exportiert BMA Flash CS3 Professional 0 25-06-2008 11:16
klassen dateien werden nicht aktualisiert dawie Flash MX 2004 0 24-11-2005 15:02


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele