'Flash'에 해당되는 글 69건

  1. Error: Error #3709: The depthAndStencil flag in the application descriptor must match the enableDepthAndStencil Boolean passed to configureBackBuffer on the Context3D object. 2
  2. FlashDevelop(4.0.1) - away3D 4.0으로 제작한 android apk 생성하기
  3. frameRate와 timeline sound
  4. mxmlc jvm.dll error //2012/03/11 03:08
  5. Dictionary //2010/10/28 13:12 1
  6. FlashDevelop 에서 //2010/10/06 17:51 3
  7. RegExp 5 - s 플래그 //2010/10/06 13:44
  8. FileReference.load() //2010/08/15 17:32
  9. FLVPlayback smoothing //2010/04/02 10:22
  10. SWF metadata tag //2010/02/07 12:32
  11. RegExp 4 - 특정 단어 제외 //2010/01/14 13:00 1
  12. Event.RENDER //2009/09/29 12:44
  13. RegExp 3 - 단어 경계 //2009/09/07 16:08
  14. RegExp 2 - 모든 문자 //2009/06/29 15:40
  15. 4096*4096 //2009/05/29 18:01

away3D 4.0를 이용하여 AIR for android로 컴파일시 


ErrorError #3709: The depthAndStencil flag in the application descriptor must match the enableDepthAndStencil Boolean passed to configureBackBuffer on the Context3D object.


라는 에러 메세지가 나오면 


app.xml 파일에 


<renderMode>direct</renderMode>
<depthAndStencil>true</depthAndStencil>


위와 같이 renderMode는 direct로 수정하고, depthAndStencil 노드를 추가한다.


※ 이상한 점은 FlashDevelop을 이용해서 컴파일 하면  <depthAndStencil> 옵션이 설정되어있지 않은 상태에도 잘 작동한다는 것이다.


출처 : http://away3d.com/forum/viewthread/1976/

필요 구성품 


adobe AIR SDK 3이상(http://www.adobe.com/devnet/air/air-sdk-download-win.html) - Context3D를 이용해야 하기 때문에 필요하다.

flex SDK 4.6(http://www.adobe.com/devnet/flex/flex-sdk-download.html) - as3 컴파일용(AIR SDK 3.1이 포함되어있다.)


FD project 생성 - Air Mobile AS3 App


생성된 폴더에 포함되어 있는 AIR_Android_readme.txt 파일을 참조하면서 다음을 실행한다.


1. 'bat\SetupSDK.bat' 의 FLEX_SDK 변수와 ANDROID_SDK 변수를 자신의 환경에 맞게 지정한다.

- flex SDK 4.6안에 기본적으로 AIR SDK 3.1이 포함되어 있다. 필요하다면 여기에 최신의 파일들을 그대로 덮어 씌우기 하면된다.


2. 'bat\CreateCertificate.bat'를 한번 실행해 인증서를 생성한다.


3. 'build project'를 실행한다. 소스를 컴파일하여 .swf 파일이 생성된다.


4. 여기서부터 'Debug'모드로 테스트 해볼 수 있다. (adl 'app.xml' '.swf가 포함된 폴더')


5. 'bat\InstallAirRuntime.bat'를 실행해 모바일 기기에 'AIR runtime'을 설치 해준다. (플레이 스토어를 통해서 설치해도 된다.)

이때 runtime.apk는 1에서 지정한 flex SDK안에 있는 runtimes\air\android\device\runtime.apk 파일이 설치된다.


6. 디버깅은 아직 할 줄 모른다.


7. 'PackageApp.bat'를 통해서 apk파일을 생성할 수 있다.

- 1번은 순수 apk파일을 생성하고 3번(apk-captive-runtime)은 AIR runtime을 포함한 apk를 생성한다.



'Flash > FlashDevelop' 카테고리의 다른 글

FlashDevelop 에서 //2010/10/06 17:51  (3) 2012.06.05

frameRate와 timeline sound

timeline sound가 stream으로 적용되어 있는 swf를 로드하면 container의 frameRate의 설정과는 상관없이 로드된 swf의 frameRate로 맞춰지게 된다. 아마도 sound를 stream으로 sync 시키기위한 강제된 동작이 아닌가 생각된다. event 형식의 sound는 상관없다.

mxmlc 실행시 다음과 같은 에러가 난다면 %JAVA_HOME%에 64bit JDK가 지정되어 있는 경우일 것이다.


Error loading: ~ jvm.dll


32bit JDK를 설치 후 환경 변수를 변경해주면 문제 없이 작동된다.


같은 이유로 FlashDevelop에서도 flexsdk로 컴파일시 에러가 발생(컴파일은 되지만 debug 어쩌구 하면서 에러가 발생된다.)하고, 해결 방법도 동일하다.

'Flash > AS3.0' 카테고리의 다른 글

frameRate와 timeline sound  (0) 2012.06.25
Dictionary //2010/10/28 13:12  (1) 2012.06.05
RegExp 5 - s 플래그 //2010/10/06 13:44  (0) 2012.06.05
FileReference.load() //2010/08/15 17:32  (0) 2012.06.05
FLVPlayback smoothing //2010/04/02 10:22  (0) 2012.06.05

Dictionary //2010/10/28 13:12

Dictionary를 이용한 Garbage Collection

 

delete dict[key];

댓글로 추가

도트 문자(.)에 개행문자도 포함 시킬 것인지를 결정한다.


var str:String = "<p>Hello\n" + "again</p>" + "<p>Hello</p>";

 

var pattern:RegExp = /<p>.*?<\/p>/;

trace(pattern.dotall) // false

trace(pattern.exec(str)); // <p>Hello</p>

 

pattern = /<p>.*?<\/p>/s;

trace(pattern.dotall) // true

trace(pattern.exec(str));

/*<p>Hello

again</p> */


'Flash > AS3.0' 카테고리의 다른 글

mxmlc jvm.dll error //2012/03/11 03:08  (0) 2012.06.05
Dictionary //2010/10/28 13:12  (1) 2012.06.05
FileReference.load() //2010/08/15 17:32  (0) 2012.06.05
FLVPlayback smoothing //2010/04/02 10:22  (0) 2012.06.05
SWF metadata tag //2010/02/07 12:32  (0) 2012.06.05

FileReference.load() 이용시


FileReference의 레퍼런스가 지역변수라면 테스트무비에서는 이상없지만 브라우저에서는 작동하지 않는 경우가 있다.

FileReference의 레퍼런스를 클래스의 속성으로 사용하면 해결된다.

protected var file:FileReference;
 
public function doSomething():void {
       
        //var file:FileReference = new FileReference(); //FileReference.load()가 브라우져에서 제대로 동작하지 않는다
        file = new FileReference();
       
        ....
}

4시간 삽질의 결과....

flvPlayback.getVideoPlayer(flvPlayback.activeVideoPlayerIndex).smoothing=true
package 
{
 import flash.display.*;
 import flash.events.Event;
 
 [SWF( backgroundColor = "#ffffff", width = "592", height = "333", frameRate = "36")]
 
 public class Main extends Sprite 
 {
  }
}

((?!못난이).)*?

 

특정 패턴에서 '못난이'라는 글자만 제외하는 최단일치 패턴

(*뒤의 ?는 게으른 수량자로서 최단일치 검색)

 

((?!못난이|바보|응꼬).)*?

 

|를 이용해서 여러개의 단어를 동시에 제외할 수 있다.

gotoAndStop()으로 무비클립의 프레임을 이동시킨 후

stage.invalidate()로 Event.RENDER의 리스너를 작동시키면

해당 프레임의 numChildren은 정상적으로 확인되지만, 그 자식들에게는 접근이 되지 않는 현상이 있다.

 

- 프레임에 놓여져 있는 무비클립에 접근해야하기 때문에 인스턴스 네임으로 접근하는 방식을 이용한다.

- getChildAt() 이나 getChildByName()으로 접근해도 마찬가지.


 protected function dim():void
  {
   __movieClip.menus.visible = true;
   var len:int = __movieClip.menus.numChildren; // 자식들의 개수는 확인이 된다.
   trace(this, len);
    
    var mc:SimpleButton;
    for (var i:int = 0; i < len; ++i) {
     mc = __movieClip.menus["menu_" + i];
     if (mc) {    
      trace(this, mc.name);      // 하지만, 해당 자식들에게 접근은 할 수 없다.
      __movieClip.menus.mc_focus.visible = true; 
      mc.alpha = .5;
      mc.enabled = false;
      mc.removeEventListener(MouseEvent.CLICK, __clickHandler);
     }else {
      break;
     }
    }
    
    progress(0);
  }


나중에라도 이유를 알게되면 좋겠다.


메타문자 \b 는 단어와 단어 사이의 경계를 의미한다. 상대적인 의미이기때문에 사용에 주의가 필요하다.


/\bcat\b/


"cat"이라는 단어 앞 뒤로 쓰였기 때문에 단어가 아닌 문자를 검색하고



/\b-\b/


"-"는 단어문자가 아니기 때문에 여기서는 단어에 포함되는 문자를 검색한다.

 

\B 는 이와 반대의 의미로 사용된다.

var pattern:RegExp = /<.*>/;

= "<"로 시작하고 ">"로 끝나는 문자열

 

. : 임의의 단일 문자

* : 바로 앞의 항목이 0번 이상 반복된 것

+ : 바로 앞의 항목이 1번 이상 반복된 것

 

위 패턴은 개행문자를 검색하지 못한다.

개행문자를 포함하려면 s 플래그를 적용한다.

 

var pattern:RegExp = /<.*>/s;

4096*4096 //2009/05/29 18:01

- 세로 4096px이상의 스테이지에 라이브러리에 있는 무비클립을 4096이상의 y 위치에 놓으면 보여지지 않는 경우가 있다. (마치 마스크가 씌워진 것처럼)

 

- 외부에서 Loader로 로드된 이미지는 위치에 관계없이 보여진다.

 

- 익스플로러/파이어폭스 , flash player 10

 

 

버그겠지?

 

** 안보이는 객체를 BitmapData.draw(객체)를 이용해서 새로운 Bitmap에 그려주면 보인다.