Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

adding a tool to extract bitmap data from fxg graphic

  • Loading branch information...
commit 05ee171b7f799366dbb302bef134e76fa1dad69a 1 parent 9057e6a
@eladelrom authored
View
4 .settings/org.eclipse.core.resources.prefs
@@ -1,3 +1,3 @@
-#Fri Jul 30 19:58:46 EDT 2010
+#Thu Jul 21 16:33:23 EDT 2011
eclipse.preferences.version=1
-encoding/<project>=UTF-8
+encoding/<project>=utf-8
View
108 bin-debug/Main.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- saved from url=(0014)about:internet -->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <!--
+ Smart developers always View Source.
+
+ This application was built using Adobe Flex, an open source framework
+ for building rich Internet applications that get delivered via the
+ Flash Player or to desktops via Adobe AIR.
+
+ Learn more about Flex at http://flex.org
+ // -->
+ <head>
+ <title></title>
+ <meta name="google" value="notranslate" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <!-- Include CSS to eliminate any default margins/padding and set the height of the html element and
+ the body element to 100%, because Firefox, or any Gecko based browser, interprets percentage as
+ the percentage of the height of its parent container, which has to be set explicitly. Fix for
+ Firefox 3.6 focus border issues. Initially, don't display flashContent div so it won't show
+ if JavaScript disabled.
+ -->
+ <style type="text/css" media="screen">
+ html, body { height:100%; }
+ body { margin:0; padding:0; overflow:auto; text-align:center;
+ background-color: #ffffff; }
+ object:focus { outline:none; }
+ #flashContent { display:none; }
+ </style>
+
+ <!-- Enable Browser History by replacing useBrowserHistory tokens with two hyphens -->
+ <!-- BEGIN Browser History required section -->
+ <link rel="stylesheet" type="text/css" href="history/history.css" />
+ <script type="text/javascript" src="history/history.js"></script>
+ <!-- END Browser History required section -->
+
+ <script type="text/javascript" src="swfobject.js"></script>
+ <script type="text/javascript">
+ // For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection.
+ var swfVersionStr = "10.2.0";
+ // To use express install, set to playerProductInstall.swf, otherwise the empty string.
+ var xiSwfUrlStr = "playerProductInstall.swf";
+ var flashvars = {};
+ var params = {};
+ params.quality = "high";
+ params.bgcolor = "#ffffff";
+ params.allowscriptaccess = "sameDomain";
+ params.allowfullscreen = "true";
+ var attributes = {};
+ attributes.id = "Main";
+ attributes.name = "Main";
+ attributes.align = "middle";
+ swfobject.embedSWF(
+ "Main.swf", "flashContent",
+ "100%", "100%",
+ swfVersionStr, xiSwfUrlStr,
+ flashvars, params, attributes);
+ // JavaScript enabled so display the flashContent div in case it is not replaced with a swf object.
+ swfobject.createCSS("#flashContent", "display:block;text-align:left;");
+ </script>
+ </head>
+ <body>
+ <!-- SWFObject's dynamic embed method replaces this alternative HTML content with Flash content when enough
+ JavaScript and Flash plug-in support is available. The div is initially hidden so that it doesn't show
+ when JavaScript is disabled.
+ -->
+ <div id="flashContent">
+ <p>
+ To view this page ensure that Adobe Flash Player version
+ 10.2.0 or greater is installed.
+ </p>
+ <script type="text/javascript">
+ var pageHost = ((document.location.protocol == "https:") ? "https://" : "http://");
+ document.write("<a href='http://www.adobe.com/go/getflashplayer'><img src='"
+ + pageHost + "www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player' /></a>" );
+ </script>
+ </div>
+
+ <noscript>
+ <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="Main">
+ <param name="movie" value="Main.swf" />
+ <param name="quality" value="high" />
+ <param name="bgcolor" value="#ffffff" />
+ <param name="allowScriptAccess" value="sameDomain" />
+ <param name="allowFullScreen" value="true" />
+ <!--[if !IE]>-->
+ <object type="application/x-shockwave-flash" data="Main.swf" width="100%" height="100%">
+ <param name="quality" value="high" />
+ <param name="bgcolor" value="#ffffff" />
+ <param name="allowScriptAccess" value="sameDomain" />
+ <param name="allowFullScreen" value="true" />
+ <!--<![endif]-->
+ <!--[if gte IE 6]>-->
+ <p>
+ Either scripts and active content are not permitted to run or Adobe Flash Player version
+ 10.2.0 or greater is not installed.
+ </p>
+ <!--<![endif]-->
+ <a href="http://www.adobe.com/go/getflashplayer">
+ <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" />
+ </a>
+ <!--[if !IE]>-->
+ </object>
+ <!--<![endif]-->
+ </object>
+ </noscript>
+ </body>
+</html>
View
BIN  bin-debug/Main.swf
Binary file not shown
View
BIN  bin-debug/framework_4.5.1.21328.swf
Binary file not shown
View
BIN  bin-debug/spark_4.5.1.21328.swf
Binary file not shown
View
BIN  bin-debug/textLayout_2.0.0.232.swf
Binary file not shown
View
41 html-template/history/history.js
@@ -26,13 +26,6 @@ BrowserHistory = (function() {
version: -1
};
- // if setDefaultURL has been called, our first clue
- // that the SWF is ready and listening
- //var swfReady = false;
-
- // the URL we'll send to the SWF once it is ready
- //var pendingURL = '';
-
// Default app state URL to use when no fragment ID present
var defaultHash = '';
@@ -50,6 +43,9 @@ BrowserHistory = (function() {
// History maintenance (used only by Safari)
var currentHistoryLength = -1;
+
+ // Flag to denote the existence of onhashchange
+ var browserHasHashChange = false;
var historyHash = [];
@@ -105,11 +101,6 @@ BrowserHistory = (function() {
return document.getElementById('ie_historyFrame');
}
- function getAnchorElement()
- {
- return document.getElementById('firefox_anchorDiv');
- }
-
function getFormElement()
{
return document.getElementById('safari_formDiv');
@@ -252,7 +243,7 @@ BrowserHistory = (function() {
backStack[backStack.length - 1] = createState(baseUrl, newUrl, flexAppUrl);
}
- if (browser.safari) {
+ if (browser.safari && !browserHasHashChange) {
// for Safari, submit a form whose action points to the desired URL
if (browser.version <= 419.3) {
var file = window.location.pathname.toString();
@@ -339,7 +330,7 @@ BrowserHistory = (function() {
}
}
- if (browser.safari) {
+ if (browser.safari && !browserHasHashChange) {
// For Safari, we have to check to see if history.length changed.
if (currentHistoryLength >= 0 && history.length != currentHistoryLength) {
//alert("did change: " + history.length + ", " + historyHash.length + "|" + historyHash[history.length] + "|>" + historyHash.join("|"));
@@ -366,7 +357,7 @@ BrowserHistory = (function() {
_storeStates();
}
}
- if (browser.firefox) {
+ if (browser.firefox && !browserHasHashChange) {
if (currentHref != document.location.href) {
var bsl = backStack.length;
@@ -436,10 +427,12 @@ BrowserHistory = (function() {
}
}
}
- //setTimeout(checkForUrlChange, 50);
}
var _initialize = function () {
+
+ browserHasHashChange = ("onhashchange" in document.body);
+
if (browser.ie)
{
var scripts = document.getElementsByTagName('script');
@@ -465,7 +458,7 @@ BrowserHistory = (function() {
}
}
- if (browser.safari)
+ if (browser.safari && !browserHasHashChange)
{
var rememberDiv = document.createElement("div");
rememberDiv.id = 'safari_rememberDiv';
@@ -493,19 +486,10 @@ BrowserHistory = (function() {
if (document.getElementById("safari_remember_field").value != "" ) {
historyHash = document.getElementById("safari_remember_field").value.split(",");
}
-
- }
-
- if (browser.firefox || browser.ie8)
- {
- var anchorDiv = document.createElement("div");
- anchorDiv.id = 'firefox_anchorDiv';
- document.body.appendChild(anchorDiv);
}
- if (browser.ie8)
+ if (browserHasHashChange)
document.body.onhashchange = hashChangeHandler;
- //setTimeout(checkForUrlChange, 50);
}
return {
@@ -575,7 +559,6 @@ BrowserHistory = (function() {
} else {
//alert(historyHash[historyHash.length-1]);
}
- //setHash(def);
setInterval(checkForUrlChange, 50);
}
@@ -589,7 +572,6 @@ BrowserHistory = (function() {
window.location.replace(newloc);
}
setInterval(checkForUrlChange, 50);
- //setHash(def);
}
},
@@ -622,7 +604,6 @@ BrowserHistory = (function() {
if (browser.ie && currentObjectId != null) {
objectId = currentObjectId;
}
- pendingURL = '';
if (typeof BrowserHistory_multiple != "undefined" && BrowserHistory_multiple == true) {
var pl = getPlayers();
View
2  html-template/index.template.html
@@ -12,7 +12,7 @@
// -->
<head>
<title>${title}</title>
- <meta name="google" value="notranslate">
+ <meta name="google" value="notranslate" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- Include CSS to eliminate any default margins/padding and set the height of the html element and
the body element to 100%, because Firefox, or any Gecko based browser, interprets percentage as
View
8 src/Main.mxml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:s="library://ns.adobe.com/flex/spark"
+ xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
+ <fx:Declarations>
+ <!-- Place non-visual elements (e.g., services, value objects) here -->
+ </fx:Declarations>
+</s:Application>
View
100 src/com/elad/optimize/utils/FXGHelper.as
@@ -0,0 +1,100 @@
+/*
+Copyright (c) 2009 Elad Elrom. Elrom LLC. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+@author Elad Elrom
+*/
+package com.elad.optimize.utils
+{
+ import flash.display.Bitmap;
+ import flash.display.BitmapData;
+ import flash.geom.Matrix;
+
+ import mx.controls.Image;
+ import mx.core.UIComponent;
+
+ import spark.components.Group;
+
+ public final class FXGHelper
+ {
+ // retrieve the bitmap data of a component
+ public static function getBitmapData( target:UIComponent, isTransparent:Boolean = false ):BitmapData
+ {
+ var bitmapData:BitmapData = new BitmapData( target.width, target.height, true, 0x00FFFFFF );
+ var matrix:Matrix = new Matrix();
+ bitmapData.draw( target, matrix );
+ return bitmapData;
+ }
+
+ public static function getImage(target:UIComponent ):Image
+ {
+ var bitmapData:BitmapData = new BitmapData( target.width, target.height, true, 0x00FFFFFF );
+ var matrix:Matrix = new Matrix();
+ bitmapData.draw( target, matrix );
+
+ var bitmap:Bitmap = new Bitmap( bitmapData );
+ var image:Image = new Image();
+ image.source = bitmap;
+ return image;
+ }
+
+ public static function getBitmap(target:UIComponent ):Bitmap
+ {
+ var bitmapData:BitmapData = new BitmapData( target.width, target.height, true, 0x00FFFFFF );
+ var matrix:Matrix = new Matrix();
+ bitmapData.draw( target, matrix );
+
+ var bitmap:Bitmap = new Bitmap( bitmapData );
+ return bitmap;
+ }
+
+
+ /**
+ * Utility method to find the object based on id
+ *
+ * @param object
+ * @param id
+ * @return
+ *
+ */
+
+ public static function findSparkObjectById(object:Group, id:String):*
+ {
+ var numElements:int = object.numElements;
+ var child:*;
+
+
+ for (var index:int; index<numElements; index++)
+ {
+ child = object.getElementAt( index );
+
+ if ( child.id == id )
+ return child;
+ }
+
+ return child;
+ }
+
+
+ }
+}
Please sign in to comment.
Something went wrong with that request. Please try again.