Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-09-2006, 09:21   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Ort: Saarland
Beiträge: 51
flash.display.BitmapData - probleme

Hallo
ich nutze in einer fla die flash.display.BitmapData
der code mit der flash.display.BitmapData ist in einer externen datei gespeichert, und wird per #include importiert. ich habe das bis jetzt in einer fla gemacht, und alles lief sauber. jetzt habe ich das ganze in eine zweite fla gepackt, und ich bekomme, warum auch immer, die meldung
Code:
**Error** /Users/erniejunior/Documents/lical_sites/HP/Extern/getPix: Line 4: The class or interface 'flash.display.BitmapData' could not be loaded.
     	myBitmap = new BitmapData(clip._width, clip._height,true,0x00FFFFFF);
ich habe dann versucht, die flash.display.BitmapData nicht in der externen datei zu importieren, aber das hat auch nicht funktioniert. hier mal der code:

extern:
Code:
function getClipPix(x,y,clip) //gibt die die rgb,werte eines beliebigen pixels in einem beliebigen mc zurück
{
	import flash.display.BitmapData;
	myBitmap = new BitmapData(clip._width, clip._height,true,0x00FFFFFF);
	myBitmap.draw(clip);
	trace(x);
	return getpixToRGB(myBitmap.getPixel(x,y));
}
function getpixToRGB(hex)
{
	var buffer1 = hex.toString(16).toUpperCase();
	var buffer2 = new Array(3);
	while(buffer1.length < 6)	
	{ 
		buffer1 = "0" + buffer1 
	} 
	var R = Number("0x" + buffer1.substr(0,2));
	var G = Number("0x" + buffer1.substr(2,2));
	var B = Number("0x" + buffer1.substr(4,2));
	buffer2[0] = R;
	buffer2[1] = G;
	buffer2[2] = B;
	return buffer2;
}
intern wird die eine function einfach nur aufgerufen.
ich wäre froh, wenn mir jemadn helfen könnte.
mit freundlichen grüßen

erniejunior
erniejunior ist offline   Mit Zitat antworten
Alt 09-09-2006, 10:12   #2 (permalink)
Banned
 
Benutzerbild von JaBo
 
Registriert seit: Aug 2006
Beiträge: 338
PHP-Code:
    import flash.display.BitmapData;//mein TIPP: import an den anfang

function getClipPix(x,y,clip//gibt die die rgb,werte eines beliebigen pixels in einem beliebigen mc zurück
{
    
myBitmap = new BitmapData(clip._widthclip._height,true,0x00FFFFFF);
    
myBitmap.draw(clip);
    
trace(x);
    return 
getpixToRGB(myBitmap.getPixel(x,y));
}
function 
getpixToRGB(hex)
{
    var 
buffer1 hex.toString(16).toUpperCase();
    var 
buffer2 = new Array(3);
    while(
buffer1.length 6)    
    { 
        
buffer1 "0" buffer1 
    

    var 
Number("0x" buffer1.substr(0,2));
    var 
Number("0x" buffer1.substr(2,2));
    var 
Number("0x" buffer1.substr(4,2));
    
buffer2[0] = R;
    
buffer2[1] = G;
    
buffer2[2] = B;
    return 
buffer2;

Zitat:
Die import-Anweisungen können sich an den folgenden Orten befinden:
An beliebigen Stellen vor der Klassendefinition in Klassendateien
An beliebigen Stellen in Bildern oder Objektskripten
An beliebigen Stellen in ActionScript-Dateien, die in eine Anwendung aufgenommen werden (mithilfe der #include-Anweisung
).
da steht nichts von "in funktionen"

Nachtrag: sonst würdest du jedesmal die klasse neu importieren , wie soll das vvon statten gehen die befindet sich schliesslich auf deinem pc.

btw. Willkommen im Forum

Geändert von JaBo (09-09-2006 um 10:14 Uhr)
JaBo ist offline   Mit Zitat antworten
Alt 09-09-2006, 10:27   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Ort: Saarland
Beiträge: 51
geht leider nicht
gleriches ergbenis, gleiche fehlermeldung
ich habe schon versucht den import an allen möglichen stellen zu machen, hat aber nie funktioniert.
mit freundlichen grüßen

erniejunior


//edit: ich habe jetzt nochmal alles durchgecheckt, und keiner der parameter, die übergeben werden ist falsch.

Geändert von erniejunior (09-09-2006 um 10:38 Uhr)
erniejunior ist offline   Mit Zitat antworten
Alt 09-09-2006, 11:50   #4 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Ort: Saarland
Beiträge: 51
ich habe jetzt mal allen code um die zwei schlüsselzeilen gelöscht, und habe nurnoch
Code:
import flash.display.BitmapData
hallo = new BitmapData(50,60);
gehabt. es ging dann immer noch nicht. nachdem ich die zwei zeilen dann in ein neues dokument gepastet habe, ging es. ich gehe jetzt mal davon aus, dass der fehler bei flash 8 liegt, und nicht bei mir, da allein durch die mc's in meiner fla ja kein laden verhindert werden kann. naja die struktur der mc's is jetzt auch nicht sooo kompliziert, und ich werde wohl einfach ein neuse dokument machen und es wie das alte aufbauen. vielen dank für die hilfe
mit freundlichen grüßen

erniejunior
erniejunior ist offline   Mit Zitat antworten
Alt 09-09-2006, 11:52   #5 (permalink)
Banned
 
Benutzerbild von JaBo
 
Registriert seit: Aug 2006
Beiträge: 338
mal ne frage so nebenbei hast du eigentlich die normale oder die pro version von flash 8?
JaBo ist offline   Mit Zitat antworten
Alt 09-09-2006, 12:50   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Ort: Saarland
Beiträge: 51
ich benutze flash 8 professional für den mac.
wieso ist das interessant?
erniejunior ist offline   Mit Zitat antworten
Alt 09-09-2006, 13:09   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
geht, falls das mc 'clip' existiert und für flash8 und AS2 eingestellt ist
Code:
import flash.display.BitmapData;
//
function getClipPix(x, y, clip) {
	var myBitmap = new BitmapData(clip._width, clip._height, true, 0x00FFFFFF);
	myBitmap.draw(clip);
	return getpixToRGB(myBitmap.getPixel(x, y));
}
function getpixToRGB(hex) {
	return [hex >> 16 & 0xff, hex >> 8 & 0xff, hex & 0xff];
}
//
trace(getClipPix(0, 0, this.clip));
würde aber andere funktionen vorschlagen. weil jedesmal eine bitmap zu erzeugen ist nicht die optimalste lösung
Code:
import flash.display.BitmapData;
//
function fInitBitmap(_mc) {
	var _bitmap = new BitmapData(_mc._width, _mc._height, true, 0x00FFFFFF);
	_bitmap.draw(_mc);
	return _bitmap;
}
function fGetPixRGB(_bitmap, x, y) {
	var h = _bitmap.getPixel(x, y);
	return [h >> 16 & 0xff, h >> 8 & 0xff, h & 0xff];
}
//
_bitmap = fInitBitmap(_root.clip);
trace(fGetPixRGB(_bitmap, 0, 0));
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (09-09-2006 um 13:19 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 09-09-2006, 13:13   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Ort: Saarland
Beiträge: 51
habs jetzt alles in eine neue datei verschoben, und geht prima (bis auf einige kleine mankos, die aber hoffentlich leicht zu beheben sind)
erniejunior ist offline   Mit Zitat antworten
Alt 25-06-2008, 09:47   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 90
Question

Hallo!

Ich habe wahrscheinlich genau das gleiche Problem! Ich habe in einer Test-Fla meine Funktion gebaut mit BitmapData und draw. Und es funktioniert alles einwandfrei!

Dann kopierte ich das Beispiel in mein eigentliches Projekt und es kommt immer diese Fehlermeldung:

PHP-Code:
The class or interface 'flash.display.BitmapData' could not be loaded
Aber die Klasse ist genau, wie im vorherigen funktionierenden Fla, eingebunden in der ersten Zeile des Actionscriptcodes:

PHP-Code:
import flash.display.BitmapData
Ich benütze CS3.

Hat da irgendjemand eine Idee was ich noch versuchen könnte? Scheint so als wäre es ein Fehler vom Programm Flash.

Alles in eine neue Datei umkopieren, wie weiter oben beschrieben, kommt bei mir nicht in Frage, das File ist zu komplex. Viele Layers und Instanzen...

Bin für jeden Tipp froh!
alsodenn ist offline   Mit Zitat antworten
Alt 25-06-2008, 16:37   #10 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
erfahrungsgemäss ist der user der fehlerverursacher ;-)

ohne etwas konkretes sehen zu können .. ist nur kaffeesatz lesen und hühnerbeinknochen schmeissen möglich.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 27-06-2008, 10:50   #11 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 90
Angry

Ja das habe ich bis jetzt auch immer gedacht. Ich hoffe, du kannst mir diesen Glauben auch wieder zurückbringen, indem du mir erklärst was ich falsche mache ;-).

Hier der Teil Code:
PHP-Code:
import flash.display.BitmapData;

///////////// Bild laden    
var loadListener:Object = new Object();
var 
mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);
mcLoader.loadClip("http://farm3.static.flickr.com/2280/2140884979_53b11e44ae_o.jpg"_root.mc1);

loadListener.onLoadInit = function(target_mc:MovieCliphttpStatus:Number):Void 
{
    var 
breite _root.mc1._width;
    var 
hoehe  _root.mc1._height;
    
    
target_mc._xscale 20;
    
target_mc._yscale 20;
    
    
///////////// Bild kopieren
    
var myBitmap:BitmapData = new BitmapData(breitehoehetrue)
    
_root.mc2.attachBitmap(myBitmapthis.getNextHighestDepth());        
    
myBitmap.draw(_root.mc1)


Wieso kommt diese Fehlermeldung?!?!?
Ich habe doch die bitmapData Klasse eingebunden. Wenn ich nur gerade diesen Teil auslagere in eine neue Datei, dann geht es...
PHP-Code:
The class or interface 'flash.display.BitmapData' could not be loaded.
Source: var myBitmap:BitmapData = new BitmapData(breitehoehetrue
An was könnte das liegen?

Manchmal kommt zusätzlich zu der obigen Fehlermeldung auch noch diese:
PHP-Code:
The name of this class, 'TextField'conflicts with the name of another class that was loaded.
Source: { 
Jedoch wenn ich es nochmals veröffentliche verschwindet dann wieder die Fehlermeldung mit dem "Textfield", aber die erste Fehlermeldung bleibt. Könnte diese zweite Fehlermeldung vielleicht mit meinem Problem was zu tun haben? Wenn ja, wie könnte ich das lösen?

Danke für eure Überlegungen und hoffentlichen Inputs!

Geändert von alsodenn (27-06-2008 um 10:52 Uhr)
alsodenn ist offline   Mit Zitat antworten
Alt 27-06-2008, 14:31   #12 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
Zitat:
Zitat von alsodenn Beitrag anzeigen
Dann kopierte ich das Beispiel in mein eigentliches Projekt und es kommt immer diese Fehlermeldung
DAS musst du uns zeigen.

weil wenn ich nur die hier veröffentlichte funktion in eine leere fla einsetze und ein mc1 anlege, da bekomme ich keine fehlermeldung, sondern es läd das wölkchenbild.
so kann niemand nachvollziehen, was bei dir nicht geht.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-06-2008 um 14:33 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 27-06-2008, 14:48   #13 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 90
Ja ist mir eigentlich schon auch klar, nur nicht so einfach machbar.

Mein Projekt umfasst momentan 3800 Codezeilen...

Ich denke kaum, dass jemand sich das antut und alles durchschaut, oder?

Wie ich ja auch schon beschrieben habe, wenn ich den selben Code in einen neue Datei schreibe und dies dann so teste, funktioniert es, wie du ja selbst festgestellt hast. Der Code im meinen Projekt ist fast genau gleich, wie was ich gepostet habe, einfach noch bisschen verschachtelter...
alsodenn ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele