'Flash'에 해당되는 글 69건

  1. 한글 워드랩 메쏘드 //2007/03/10 17:49
  2. loadBitmap() //2007/03/01 22:52
  3. Stage //2007/02/12 18:37
  4. AS2와 AS3간의 LocalConnection
  5. filter(GlowFilter)를 입힌 무비클립의 좌표이동 (06.12.31) 1
  6. printJob (06.12.28)
  7. projecter(exe) 2byte 경로명 문제 (06.12.8)
  8. onUnLoad를 적용한 swf(06.10.23)
  9. accessibility (06.10.20)
  10. 마스크가 씌워진 무비클립안에서의 마스크(06.10.18)
  11. flash player downloads.html
  12. Android 용 ANE 파일 만들기 //2012/05/26 21:11
  13. Adding Flash Player 11.2 support to Flash Pro CS5 and CS5.5 //2012/05/09 02:08
  14. Flash CS5.5 -ANE (AIR Native Extension) 이용하여 .apk 만들기 //2012/03/08 01:13 1
  15. zoom 컨트롤시 //2009/08/04 10:09
//한글 워드랩 메쏘드, rts는 초기값 ""이나 undefined으로 시작
//TextField는 single line이어야 한다.
//** 약간의 오차가 있을 수 있다.
//TextField에는 setNewTextField가 설정되어 있어야 정상작동된다.(setTextField X)
function returnString(st:TextField, limit:Number, rts:String):String {
	st.autoSize = true;
	var wid:Number = st._width;
	//trace("width : " + wid);
	var str:String = st.text;
	var rtStr:String = rts == undefined ? "" : rts;
	//문장 길이가 제한보다 길면 잘라냄
	if (wid > limit) {
		var len:Number = str.length;
		var newLen:Number = Math.floor(len * (limit / wid));
		var cutLen:Number = len - newLen;
		//잘라낸 앞/뒤 문장
		var nstr:String = str.substr(0, newLen);
		var tstr:String = str.substr(-cutLen, cutLen);
		//trace("before - " + [nstr, tstr]);
		//앞문장의 끝이나, 뒷문장의 처음이 공백이 아니면 앞문장의 마지막
		//공백까지 다시 잘라냄
		if (tstr.charAt(0) != " " && nstr.charAt(newLen - 1) != " ") {
			var arr:Array = nstr.split(" ");
			//공백이 없으면 그냥 자른 상태로 패스
			if (arr.length == 1) {
			} else {
				tstr = arr.pop() + tstr;
				nstr = arr.join(" ");
				//trace("after - " + [nstr, tstr]);
			}
			//줄의 처음 공백 제거
		} else if (tstr.charAt(0) == " ") {
			tstr = tstr.slice(1);
			//줄의 마지막 공백 제거
		} else if (nstr.charAt(newLen - 1) == " ") {
			nstr = nstr.slice(0, newLen - 1);
		}
		rtStr += nstr + "\n";
		st.text = tstr;
		//뒷문장을 다시 처리
		return arguments.callee(st, limit, rtStr);
	} else {
		return rtStr + str;
	}
}


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

Adapter  (0) 2012.06.05
SimpleButtonHandler //2007/03/18 13:22  (0) 2012.06.05
loadBitmap() //2007/03/01 22:52  (0) 2012.06.05
Stage //2007/02/12 18:37  (0) 2012.06.05
AS2와 AS3간의 LocalConnection  (0) 2012.06.05

라이브러리의 비트맵(이미지)를 propertise에서 압축하면(기본값) BitmapData.loadBitmap(linkage)를 할 때, width 1pixel이 늘어난다. (185pixel)

압축을 하지 않으면 (loseless) 해결되지만, 컴파일된 swf파일의 용량 차이가 크게 난다.

 

비트맵을 바로 로드하지 않고, 무비클립으로 한번 변환한후 라이브러리에 등록해서 사용하면 문제가 나타나지 않는다.

 

왜 이럴까?

Stage //2007/02/12 18:37

Stage

 

- 특정 html안에서 Stage.width와 Stage.height가 제대로 작동되지 않는다. 코딩상의 문제일까?

AS2와 AS3간의 LocalConnection

 

- 2에서 보내고 3에서 받을 때 가능

- 2에서 BitmapData를 3으로 전달하여 이미지로 생성해보려고 시도했지만, 데이터전달이 되지 않음(null).

- 파라미터의 허용 크기는 40kb

filter(GlowFilter)를 입힌 무비클립의 좌표이동 (06.12.31)

 

- GlowFilter필터(다른 필터는 아직 모른다..)를 적용한 무비클립은 좌표이동시 1pixel단위로만 이동이 가능하다.

- 일반 무비클립은 0.5픽셀씩 이동

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

Stage //2007/02/12 18:37  (0) 2012.06.05
AS2와 AS3간의 LocalConnection  (0) 2012.06.05
printJob (06.12.28)  (0) 2012.06.05
projecter(exe) 2byte 경로명 문제 (06.12.8)  (0) 2012.06.05
onUnLoad를 적용한 swf(06.10.23)  (0) 2012.06.05

printJob (06.12.28)

printJob (06.12.28)

 

- printJob은 마스크가 적용된다.

- printJob은 무비클립전체가 아니라 0,0을 기준으로 인쇄한다.

projecter(exe)파일 2byte 경로명 문제 (06.12.8)

 

- exe로 생성하면 swf, flv 파일의 경로명에 2byte문자가 포함되어 있을때 해당 파일을 로드하지 못한다.

 

- 경로명 가장 앞에 '/'를 붙이면 swf파일은 이와 관계없이 로드가 가능하지만 flv파일은 여전히 로드가 안된다.

(flash8, FLVplayBack 사용시)

onUnLoad를 적용한 swf(06.10.23) - 리퀴드브레인 LG C1 Express Dual

 

- onUnLoad를 적용한 swf를 같은 무비클립에 연속로드시에는 IE와 SA플레이어에서 (테스트무비는 이상없음)

MovieClipLoader의 onLoadInit가 제대로 작동하지 않는다.

 

- 각각의 swf를 각각의 무비클립에 로드하면 이상없음.

accessibility (06.10.20)

accessibility (06.10.20)

 

- 시각 장애인에게는 모션이나 그래픽은 불필요하다

- 판독기(WindowEyes)가 액션스크립트로 적용된 부분을 알아채지 못한다

  (텍스트 필드는 별도 설정없이 읽는다)

- 최대한 텍스트를 살려서 만든다.

 

* Accessibility.isActive():Boolean 이용

 -> true = 텍스트로 구성

 -> false = 그래픽으로 구성

 

* WindowEyes - 스테이지에 직접위치시킨 무비클립안의 텍스트필드는 외부(_root)의 텍스트 필드와 닿아야만 인식.

 (Accessibility.isActive() 확인 이후에 생성(런타임 생성?)된 텍스트필드는 정상인식)

마스크가 씌워진 무비클립안에서의 마스크(06.10.18)

 

- 일반 마스크는 가능

 

블러를 적용한 (cacheAsBitmap=true)마스크는 불가능

flash player downloads.html

http://www.adobe.com/support/flashplayer/downloads.html

adt를 실행하기위한 준비물


- 안드로이드 API를 작동시킬 .jar파일

- jar파일과 연동 되는 .swc파일

- extension.xml




## jar 파일 만들기

jar cf "만들 .jar파일 이름" -C "이클립스로 컴파일된 java 파일(프로젝트폴더\bin\classes)" . 

(마지막에 . 누락 주의)




## SWC파일 만들기


* flex SDK로 만들기 (Flash Builder에서는 /bin폴더에 SWC파일이 자동으로 생성된다.)


compc -o "만들 .swc파일 이름" -is "as소스폴더" -external-library-path "AIR의 airglobal.swc파일 지정" -swf-version 13

- airglobal.swc는 NativeExtension을 지원하는 2.5버전 이상을 지정한다. 단, .apk로 package시 포함되는 .swf파일의 버전보다는 낮거나 같아야한다.


- "-swf-version 13" 이라는 옵션을 추가하여 adt로 ane파일을 생성할때 "Invalid swc file. The extension NameSpace requires the SWF version to be 13 or lower."가 나타나지 않도록 한다.



* Flash CS5.5로 만들기 


0. Player 를 "AIR 2.5" 이상으로 변경한다.


1. 필요한 class를 import 하고 new 할 필요없이 클래스명만 적어준다.

import com.showjean.ANE.AlertANE;
AlertANE;

2. Publish Settings 에서 SWC 를 선택하고 테스트 무비를 실행한다.




## extension.xml 작성


 ANE.Alert
 1
 
  
   
    AlertANE.jar
    air.extensions.AlertExtension
    air.extensions.AlertExtension
   
    
 

<id> : ane를 구동하는 연결고리같은 존재이므로 되도록 유일한 값을 입력한다.

<nativeLibrary> : .jar 파일이름

<initializer><finalizer> : 자바클래스




## adt를 이용해서 .ane파일 생성


1. Android-ARM폴더를 만들어 .jar파일과 swc안의 library.swf파일을 복사해 넣는다.

(swc파일은 확장자를 zip으로 변경하여 내용을 확인할 수 있다.)


2. 다음을 정확히 입력한다.

adt -package -target ane "만들 .ane파일 이름" "extension.xml파일 지정" -swc ".swc파일 지정" -platform Android-ARM -C "Android-ARM폴더 경로지정" .

(마지막에 . 누락 주의)




ANE.alert.rar




- Flash CS5.5에서 ane 사용하기 : http://showjean.tistory.com/54

http://blogs.adobe.com/rgalvan/2011/11/adding-fp11-support-to-flash-pro-cs5-and-cs5-5.html


위 링크(FP11을 설정하는 법)을 따라하되 


폴더 이름을 FP11.2로 바꾸고 그 안에 playerglobal11_2.swc를 복사해 넣고 playerglobal.swc로 이름을 변경한다,


$Flash//Common/Configuration/Players/FlashPayer11_2.xml 파일의 내용을 다음과 같이 수정한다.(파일이 없으므로 이전 버젼 것을 복사한 후 이름을 변경해준다.)





Flash Player 11.2
   
   Device Central/adcdl.exe
   Device Central/adcdl
   
.....


FlashDevelop 4.0.1에서 Player를 11.2로 선택하는 경우 -swf-version이 14로 잘못 설정되어 컴파일시 정상적으로 작동되지 않는다. (대표적으로 마우스 오른쪽 버튼 클릭 이벤트가 작동하지 않는다.) 해결법은


Project > Properties > Compiler Options > ADvanced > Additional Compiler Options


위 항목에 "-swf-version=15"(따옴표 제외)를 추가하면 컴파일시 적용되어 정상 작동된다.

reference : http://help.adobe.com/en_US/air/build/WS597e5dadb9cc1e0253f7d2fc1311b491071-8000.html

movie 1/2 : http://www.youtube.com/watch?v=Axg6E001a7I

movie 2/2 : http://www.youtube.com/watch?v=MRcoJ6ClLqo&feature=channel


0. AIR3.1 SDK : http://www.adobe.com/devnet/air/air-sdk-download.html

   Android SDK r16 : http://developer.android.com/sdk/index.html


1. ANE 파일 준비 


Vibration 예제 (http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html)

샘플 파일을 다운로드한다.


2. flash cs5.5 에서 file - new - AIR for Android 로 새 파일을 생성하고 저장한다.

  (어짜피 adt를 이용해 package하게 되므로 AIR for Android를 고집할 필요없다. overlay 한 AIR3.1(http://kb2.adobe.com/cps/908/cpsid_90810.html)을 선택해도 된다.

"Included native extension 'com.adobe.mobile' includes a SWF version 13 which is greater than the version of the root SWF of this application: 11"

- 위와 같은 내용의 에러가 발생시 3.1을 선택해서 해결할 수 있다.)


3. ANE의 com.adobe.extensions.Vibration.ane 파일을 복사하여 com.adobe.extensions.Vibration.swc로 확장자를 변경한다.


4. flash의 Library path에 위 swc 파일을 추가하고 ⓘ를 클릭하여 Link Type을 External로 변경한다.


5. 적당한 스크립트를 작성한다.

package 
{

 import flash.display.MovieClip;
 import com.adobe.nativeExtensions.Vibration;


 public class VibrationExam extends MovieClip
 {


  public function VibrationExam()
  {
   // constructor code
   var vibe:Vibration;
   if (Vibration.isSupported)
   {
    vibe = new Vibration();
    vibe.vibrate(500);
   }
  }
 }

}



6. 인증서를 생성/등록한다.


7. name-app.xml에 퍼미션을 추가한다. (필요없다면 하지 않아도 된다.)



8. name-app.xml에 extensionID를 추가한다. (ANE마다 정해진 id값이 있는 것으로 보여짐. 이 예제의 경우 txt파일로 제공. ane파일을 zip으로 확장명을 변경하고 압축을 해제하면 extension.xml이라는 이름의 파일을 찾을 수 있다. 이안에 id값이 지정되어 있다.)

 
    com.adobe.Vibration 



- 이 상태에서 test movie를 실행하면 swf 파일만 생성되고 화면에 나타나지 않는다. 위 노드를 주석처리하고 실행해도 클래스를 찾을 수 없다는 에러는 발생된다. 에뮬레이터나 디바이스에서만 작동을 확인할 수 있다.


9. 해당 폴더에 extensionsDir 폴더를 만들어 com.adobe.extensions.Vibration.ane 파일을 복사 해 넣는다.

(.ane파일의 이름은 변경해도 작동하는 것으로보아 이름은 어떤 것이든 관계없는 것으로 보인다.)


10. adt를 실행해 apk파일을 만든다. 생성시 인증서 비밀번호가 필요하다. (어느 디렉토리에서 실행가능하도록 adt의 경로를 path에 등록해 둔다.)

adt -package -target apk -storetype pkcs12 -keystore showjean.p12 vibrationExam.apk vibrationExam-app.xml vibrationExam.swf -extdir extensionsDir


11. apk 파일을 디바이스에 설치해 테스트 한다.(adb도 마찬가지로 path 등록)

adb install vibrationExam.apk

재설치시엔 "install" 뒤에 -r 옵션을 붙여준다.



확대는 대상의 중심을 기준으로

축소는 화면의 중심을 기준으로

실행해야 화면에서 대상이 사라지는 것을 예방할 수 있다.