몇년째 flash builder 툴 업데이트도 없고
flash player는 이제 곧 막히고 안드로이드 64비트 지원도 더디고 곧 8월이면 apk도 못 올릴텐데
html5 로 가던지 unity 로 가야 할듯
몇년째 flash builder 툴 업데이트도 없고
flash player는 이제 곧 막히고 안드로이드 64비트 지원도 더디고 곧 8월이면 apk도 못 올릴텐데
html5 로 가던지 unity 로 가야 할듯
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
>
<fx:Script>
<![CDATA[
import org.alivepdf.colors.RGBColor;
import org.alivepdf.display.Display;
import org.alivepdf.fonts.CoreFont;
import org.alivepdf.fonts.FontFamily;
import org.alivepdf.fonts.unicodefonts.ArialUnicodeMS;
import org.alivepdf.fonts.unicodefonts.CidInfo;
import org.alivepdf.layout.Layout;
import org.alivepdf.layout.Orientation;
import org.alivepdf.layout.Size;
import org.alivepdf.layout.Unit;
import org.alivepdf.pdf.UnicodePDF;
import org.alivepdf.saving.Method;
private var pdf:UnicodePDF;
public var helvBold:CoreFont = new CoreFont ( FontFamily.HELVETICA_BOLD );
public var helvBoldItalic:CoreFont = new CoreFont ( FontFamily.HELVETICA_BOLDOBLIQUE);
public var helv:CoreFont = new CoreFont ( FontFamily.HELVETICA);
private function createPDF(fileName:String = "alivePDFTest.pdf"):void {
//pdf = new PDF(Orientation.PORTRAIT, Unit.MM, true, Size.LETTER);
pdf = new UnicodePDF(Orientation.PORTRAIT, Unit.MM, true, Size.A4);
pdf.setDisplayMode(Display.FULL_PAGE, Layout.SINGLE_PAGE);
pdf.setFont(new ArialUnicodeMS(CidInfo.KOREAN));
pdf.addPage();
pdf.setDisplayMode (Display.FULL_PAGE, Layout.SINGLE_PAGE);
pdf.setAuthor("Some Author");
pdf.setCreator("Some creator");
pdf.setTitle(fileName);
pdf.setMargins(10,40,10,10);
var reallyLongText:String = "아기곰푸우 만세";
for (var i:int = 0;i < 5;i++) {
pdf.setLeftMargin(20);
pdf.textStyle(new RGBColor(0x000000),1);
pdf.setFont(new ArialUnicodeMS(CidInfo.KOREAN));
//pdf.setFont(helvBold, 18);
pdf.addMultiCell(180,10,"Title " + i,0,"L");
pdf.textStyle(new RGBColor(0x000000),1);
//pdf.setFont(helvBoldItalic,11);
pdf.setFont(new ArialUnicodeMS(CidInfo.KOREAN));
var text:String = "Subheader " + i;
pdf.addMultiCell(180,10,text,0,"L");
//Add a "spacer"
pdf.addMultiCell(160,5,'');
//Add Description
//pdf.setFont(helv,12);
pdf.setFont(new ArialUnicodeMS(CidInfo.KOREAN));
pdf.setLeftMargin(10);
pdf.addMultiCell(170, 6, reallyLongText,0,"L");
//Add a "spacer" inbetween groups of text
pdf.addMultiCell(160,10,'');
}
pdf.end();
var ba:ByteArray = pdf.save(Method.LOCAL);
var fileReference:FileReference = new FileReference();
fileReference.save(ba, fileName);
}
private function sparkBtn_clickHandler(event:MouseEvent):void {
this.createPDF("test.pdf");
}
]]>
</fx:Script>
<s:layout>
<s:HorizontalLayout />
</s:layout>
<s:VGroup id="sparkGroup" horizontalAlign="center" >
<s:Button id="sparkBtn" label="Create PDF using addMultiCell" click="sparkBtn_clickHandler(event)"/>
</s:VGroup>
</s:WindowedApplication>
RTSP 동영상 플레이어
ip camera 연동시 RTSP 프로토콜 지원하면 됌
https://github.com/AxisCommunications/locomote-video-player 라이브러리 사용
http://swffit.millermedeiros.com/
fullscreen 플래시에서 플래시 스테이지보다 브라우져가 작을때 자동으로 스크롤이 생기고 사라지고를 만들어주는
아주 편리한
자바스크립트 라이브러리이다.
이펙트 사용법
http://blog.flashgen.com/2011/10/18/creating-particle-effects-for-starling-on-windows/
이펙트 에디터
http://onebyonedesign.com/flash/particleeditor/
일반적인 이펙트 효과들
http://www.flasheff.com/
일반적인 이펙트 효과들 만들기
http://www.effectgenerator.com/
간단한 어플이나 ui 강력한 컴포넌트가 많이 필요한 경우에만 flex를 사용한다.
기본은 actionscript 3d 가속이 가능한 starling framework에 feathersui( http://feathersui.com ) 를 사용한다.
그래야 flash builder 3.7부터 강력한 프로파일링 기능을 사용할수 있다.
monocle ( http://wooyaggo.tistory.com/407 )
아이폰이나 안드로이드나 다 가변 ui 지원할수 있도록 고료해야한다.
1. 기존 유사한 프로그램이 있다면 참조한다.
2. 폰만 지원하는지 태블릿 pc만 지원하는지 둘다 지원할지 결정한다.
3. 둘다 지원할 경우 SplitViewNavigator 같은 형식으로 우선 고려한다. flex이므로 actionscript 로 재작성 필요
4. 해상도와 dpi를 고려해서 ui 의 크기를 결정한다.
5. 폰은 최대 5인치 까지 고려하고 태블릿 pc이면 최소 7인치까지 고려한다.
6. 국내에서는 폰일 경우 해상도 800 * 480 을 최소로 고려한다. 태블릿 pc 경우 해상도 1280 * 720 을 최소로 고려한다. ( 낮을수록 좋다. ) 해외는 320 * 240 , 800 * 600
7. 각 os별 해상도에 영향을 주는 것들을 고려한다. 상단바 하단바
8. ui는 한쪽방향으로 흐르듯 만든다. ( 개인적 의견)
9. 버튼은 확실히 하는 역할을 알게 한다. 최악의 경우 텍스트를 포함해서라도 한다. 툴팁은 고려하지 않는다
10. ui 이미지는 텍스쳐 한장으로 가능하게 해야 3d 가속이 좋다.
11. 터치 인터페이스를 마우스보다 우선 고려한다.
12. 텍스트 입력 부분이 있을경우 전체 입력모드, 가상키보드 입력, pan입력 모드를 고려한다.
private static const pattern:RegExp = /[\ \{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi
public static function checkSpellForChat(str:String):Boolean
{
var word:String = str.split(pattern).join("");
return checkExist(word);
}
public static function checkSpellForName(str:String):Boolean
{
var word:String = str.split(pattern).join("");
if ( checkExist(word)==true || checkSame( word)==true )
{
return true;
}
return false;
}
public static function checkExist(str:String):Boolean
{
for each(var word:String in existList )
{
if ( str.indexOf(word ) >=0 )
{
return true;
}
}
return false;
}
public static function checkSame(str:String):Boolean
{
for each(var word:String in sameList )
{
if ( word == str )
{
return true;
}
}
return false;
}
flex 4.5.1 spark 사용중인데 모바일에선 모바일 테마가 적용되면서 호환안되는 내용이 들이 있음
해결법 :
1. 인터페이스가 같은 ui 라이브러리를 각각 만들어 따로 적용한다.
2. 최대한 ui 설정은 css 옮긴다.
3. 고정 ui 보단 플로우 ui ( VGroup, HGroup )을 이용한다.
4. 스킨은 가벼운걸 기준으로 삼는다.
5. 모바일과 웹이 서로 완전히 다른 ui 를 써야한다면 ui/프로젝트 명으로 구분한다.
6. 항상 양쪽다 검증한다.
7. panel 은 모바일에 지원하지 않으니 사용안한다.
8. html 형식의 텍스트는 성능저하가 심하므로 타이핑형식으로 로그 출력시에는 사용하지 않는다.
9. 가끔적 actionscript 로 짠다.