Error: transcoding parameter ‘symbol’ is not supported by ‘flex2.compiler.media.DataTranscoder’

Hi,

if you’ve run on the Error: transcoding parameter 'symbol' is not supported by 'flex2.compiler.media.DataTranscoder' error recently, then you’re not alone.

I’ve updated my FlashDevelop recently (and with FD updated the Flex SDK – the offender) and one of my projects suddenly stopped publishing, the error was pointing to the Embed tag.

		[Embed(source = "../../../../../gd_logo.swf", 
		mimeType = "application/octet-stream", 
		symbol="com.greladesign.library.logo.GrelaDesignLogo" )]

I was searching on the internet, but couldn’t find anything, however good soul on FD forum has gave me the answer which is:

Remove the mime-type.

		[Embed(source = "../../../../../gd_logo.swf", 
		symbol="com.greladesign.library.logo.GrelaDesignLogo" )]

Multi-touch handling in AIR for Android/iOS

To handle multitouch in AIR you need to listen to TouchEvent events like TouchEvent.TOUCH_BEGIN. Which event you will listen depends on the Multitouch.inputMode defined, possile values are enumerated in MultitouchInputMode class. We will use MultitouchInputMode.TOUCH_POINT which specifies that events are dispatched only for basic touch events, such as a single finger tap.

It would be also good to make sure that we have touch enabled device or if we have enough number of touch points recognised, this information can be fetched from Multitouch class.


var m_oTouchIDs:Object;

if(Multitouch.supportsTouchEvents)
{
    Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
    m_oTouchIDs = { };
    //we have touch screen
    stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
    stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
    stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
}

protected function onTouchMove(e:TouchEvent):void 
{
    //update
    var p:Point = m_oTouchIDs[e.touchPointID] as Point;
    p.x = e.localX;
    p.y = e.localY;
}
		
protected function onTouchEnd(e:TouchEvent):void 
{
    delete m_oTouchIDs[e.touchPointID];//release
}

protected function onTouchBegin(e:TouchEvent):void 
{
    m_oTouchIDs[e.touchPointID] = new Point(e.localX, e.localY);
}


Than you have an object containing position (and it could contain other details if needed) of each touch point which could be later used e.g. in a loop to verify what was “clicked”.

best regards