패키지내에 클래스는 하나만들어가야되는건가여
회사원
안녕하세요
패키지내에 클래스는 하나만들어가야되는건가여
jpeg인코드클래스에서 에러가나는데
5006: An ActionScript file can not have more than one externally visible definition: BitString, JPEGEncoder
이런에러인데
public class BitString {
public var len:int = 0;
public var val:int = 0;
};
이클래스를 패키지밖으로 꺼집어내어도 에러가 나는군요
1114: The public attribute can only be used inside a package.
어떻게해결해야될런지....
조언부탁드립니다
package {
import flash.geom.*;
import flash.display.*;
import flash.utils.*;
public class BitString {
public var len:int = 0;
public var val:int = 0;
};
public class JPEGEncoder
{
// Static table initialization
private var ZigZag:Array = [
0, 1, 5, 6,14,15,27,28,
2, 4, 7,13,16,26,29,42,
3, 8,12,17,25,30,41,43,
9,11,18,24,31,40,44,53,
10,19,23,32,39,45,52,54,
20,22,33,38,46,51,55,60,
21,34,37,47,50,56,59,61,
35,36,48,49,57,58,62,63
];
private var YTable:Array = new Array(64);
private var UVTable:Array = new Array(64);
private var fdtbl_Y:Array = new Array(64);
private var fdtbl_UV:Array = new Array(64);
-
주리
그러게요...ㅠ.ㅠ 저도 해결하고 싶어요...정말 재대로 만들어진 소스 없나요?
물론 제가 초보라 그러긴 해도...아무리 찾아봐도 에러는 모르겠어요...ㅠ.ㅠ -
Sona
답변감사합니다
근데 class JPEGEncoder ~ 로 사용하면된다고하셨는데
어떻게해야되는건지를 아직이해못했습니다
\t// JPEG 인코딩
\tvar objJPEGEnc:JPEGEncoder \t\t= new JPEGEncoder(80);
\tvar objByteData:ByteArray \t\t= objJPEGEnc.encode(objBMP);
클래스사용을 이렇게했는데 위의에러가 났습니다
이걸 어떻게해야되는건가여? -
샤르
두개 이상 넣을 수 있는데, 지네가 그렇게 만들어넣고 하나만 넣기를 권장하더군요 ㅎ
-
걸때
두개 이상 넣을 수 있습니다
-
우울녀
패키지내에 클래스가 하나들어가는게 아니고 AS파일 하나에 기본적으로 클래스가 하나 들어가는거지요
폴더구조(패키지이름)+파일명(클래스이름)을 이용해서 클래스를 로딩해오기 때문이죠
패키지 밖으로 클래스를 빼서 사용할수도 있는데 그런 경우는 그냥 로컬 즉 그 파일 내에서만
그 클래스를 사용하겠다는 거구요 따라서 public, private등의 내용이 의미없어집니다.
위에서는 그냥 class JPEGEncoder ~ 로 사용하시면 사용가능 합니다.