Posted by 복태아빠
,

private function sound_id3_read(file:File):void{

var file_Stream:FileStream = new FileStream();
file_Stream.open(file, FileMode.UPDATE);

file_Stream.position = file_Stream.bytesAvailable - 128; // MP3 파일의 비트레이트 값을 빼준다..

textArea.text = "";
var cset:String = "EUC-KR";
if (file_Stream.readMultiByte(3, cset).match(/tag/i)){
textArea.text += '\n Title: '+ file_Stream.readMultiByte(30, cset);
textArea.text += '\n Artist: '+ file_Stream.readMultiByte(30, cset);
textArea.text += '\n Album: '+ file_Stream.readMultiByte(30, cset);
textArea.text += '\n Year: '+ file_Stream.readMultiByte(4, cset);
textArea.text += '\n Comment: '+ file_Stream.readMultiByte(30, cset);
textArea.text += '\n GenreCode: '+ file_Stream.readByte().toString(10);
textArea.text += "\n------------------------------\n";
}   
}

 


출처 - http://cafe.naver.com/flexcomponent/10087

Posted by 복태아빠
,

ArrayCollection 데이터를 xml data로 생성하고 이를 Tree 컴퍼넌트에 물려준다..

-------------------------------------------------------------------------------------------------+

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
 applicationComplete="init ()">
 
 <mx:Script>
  <![CDATA[
   import mx.utils.XMLUtil;
   import mx.collections.ArrayCollection;
   var arrData :ArrayCollection = new ArrayCollection([
    {categorycd:"1",parentcd:"0",nm:"그룹홍보",level:"1"},
    {categorycd:"3",parentcd:"0",nm:"SMS발송(old)",level:"1"},
    {categorycd:"5",parentcd:"0",nm:"기타1",level:"1"},
    {categorycd:"2",parentcd:"1",nm:"1234",level:"2"},
    {categorycd:"8",parentcd:"1",nm:"12341",level:"2"},
    {categorycd:"4",parentcd:"3",nm:"그룹관련12",level:"2"},
   ]);
  
   var resultXML :XML = <root categorycd="0" nm="루트" />;
  
   private function init () :void
   {
    convertToXML ( arrData );
   }
  
   private function convertToXML ( arr :ArrayCollection ) :void
   {
    var len :int = arr.length;
    for ( var i:int=0; i<len; i++ )
    {
     insertItem (arr.getItemAt(i).parentcd, toXML(arr.getItemAt(i)), new XMLList(resultXML));
    }
    trace ( resultXML.toXMLString() );
   
    treeMenu.dataProvider = resultXML;
   }
  
   private function insertItem(_parentId : String, _child : XML, _xml :XMLList) : Boolean
   {
      var parentElement : XMLList = findXMLList(_parentId, _xml);
      if (parentElement == null)
         return false;
  
      parentElement.* += _child;
      return true;
   }
  
   private function findXMLList (_id : String, _xml : XMLList) : XMLList
         {
            if (_xml.@categorycd == _id)
               return _xml;
       
            var children : XMLList = _xml.elements ();
            var result : XMLList = null;
          
            for each (var x : XML in children)
            {
               result = arguments.callee (_id, new XMLList(x));
               if (result != null)
                  return result;
            }
       
            return null;
         }
  
   private function toXML ( obj :Object, tagName:String="node" ) :XML
   {
    var return_xml :XML = new XML("<"+tagName+"/>");
    for ( var key:String in obj )
    {
     return_xml.@[key] = obj[key];
    }
    return return_xml;
   }
  
  
  ]]>
 </mx:Script>
 
 <mx:Tree id="treeMenu" width="300" height="100%" labelField="@nm"
  showRoot="false">
 
 </mx:Tree>
 
</mx:Application>

-------------------------------------------------------------------------------------------------+

ArrayCollection 에 들어있는 데이터를 뽑아다가 xml 로 만들어주고
이를 treeMenu.dataProvider = resultXML 로 데이터를 물려주는거다..
하나하나 보면 어려운 부분이 없다..
그냥 재미있길래 ㅎ

출처 - http://cafe.naver.com/flexcomponent/1429
Posted by 복태아빠
,


[팁] textinput,textarea 입력 빠르게(한글개선) | Flex 컴포넌트 개발
 2008.09.05 13:42
강원철(expand)
 새싹멤버  
http://cafe.naver.com/flexcomponent/12176  
 
한글처리가 flex 에서 textinput 에서 한박자 늦게 써지는 답답함때문에 관련자료를 찾던중

아래와 같이 해결하거나 frameRate 의 속도를 높여 개선을 하는 방법이 있었는데 아래와 같은 방법이 저에게는 잘 적용이 안되더라구요. 에러가 나고 frameRate를 높일경우 메모리와 컴퓨터에 부하가 걸리기 때문에 디폴트 이상으로 높이기 싫고요.

 

기존 소스

 <?xml version="1.0" encoding="utf-8"?>
<mx:TextInput xmlns:mx="http://www.adobe.com/2006/mxml" focusIn="TextInput_onFocusIn()" focusOut="TextInput_onFocusOut()">
    <mx:Script>
        <![CDATA[
            private function TextInput_onFocusIn(): void
            {
                this.textField.alwaysShowSelection = true;
            }
            private function TextInput_onFocusOut(): void
            {
                this.textField.alwaysShowSelection = false;

            }
        ]]>
    </mx:Script>
</mx:TextInput>
 


 

 

개선안

 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();">

<mx:Script>

<![CDATA[

import mx.core.IUITextField;

 

private function init():void

{

var fname:IUITextField = uname.mx_internal::getTextField();

 fname.alwaysShowSelection = true;

}

]]>

</mx:Script>

<mx:TextInput x="173" y="87" id="uname" tabIndex="0"/>

</mx:Application>

Posted by 복태아빠
,