You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2017/06/26 21:29:21 UTC
git commit: [flex-asjs] [refs/heads/tlf] - Selection blendModes are
working Copy and Paste For Copy and Paste to work, a focused,
editable element needs to be assigned to the Clipboard.
Repository: flex-asjs
Updated Branches:
refs/heads/tlf 99864a8cd -> 455f88020
Selection blendModes are working
Copy and Paste
For Copy and Paste to work, a focused, editable element needs to be assigned to the Clipboard.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/455f8802
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/455f8802
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/455f8802
Branch: refs/heads/tlf
Commit: 455f880202bb37c3052be321a10f5ceca15ad27c
Parents: 99864a8
Author: Harbs <ha...@in-tools.com>
Authored: Tue Jun 27 00:29:17 2017 +0300
Committer: Harbs <ha...@in-tools.com>
Committed: Tue Jun 27 00:29:17 2017 +0300
----------------------------------------------------------------------
.../projects/TLF/src/main/flex/TLFClasses.as | 2 +-
.../textLayout/container/ContainerController.as | 18 +-
.../textLayout/conversion/PlainTextImporter.as | 2 +-
.../apache/flex/textLayout/dummy/Clipboard.as | 36 ----
.../apache/flex/textLayout/edit/Clipboard.as | 211 +++++++++++++++++++
.../apache/flex/textLayout/edit/EditManager.as | 20 ++
.../flex/textLayout/edit/SelectionManager.as | 28 ++-
.../flex/textLayout/edit/TextClipboard.as | 41 +++-
.../flex/textLayout/factory/ITLFFactory.as | 2 +
.../textLayout/factory/StandardTLFFactory.as | 9 +
10 files changed, 317 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/TLFClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/TLFClasses.as b/frameworks/projects/TLF/src/main/flex/TLFClasses.as
index e398e7c..29f9d14 100644
--- a/frameworks/projects/TLF/src/main/flex/TLFClasses.as
+++ b/frameworks/projects/TLF/src/main/flex/TLFClasses.as
@@ -164,7 +164,7 @@ package
import org.apache.flex.textLayout.utils.HitTestArea; HitTestArea;
import org.apache.flex.textLayout.utils.Twips; Twips;
import org.apache.flex.textLayout.factory.ITLFFactory; ITLFFactory;
-
+ import org.apache.flex.textLayout.edit.Clipboard; Clipboard;
// CONFIG::release public function exportAssert():void
// {
// assert();
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
index 03a68c8..1bf69cb 100644
--- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
+++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
@@ -3002,10 +3002,10 @@ package org.apache.flex.textLayout.container
}
var selFormat:SelectionFormat = interactionManager.currentSelectionFormat;
-//TODO deal with blend modes
-// var curBlendMode:String = (interactionManager.activePosition == interactionManager.anchorPosition) ? selFormat.pointBlendMode : selFormat.rangeBlendMode;
-// if (selectionSprite.blendMode != curBlendMode)
-// selectionSprite.blendMode = curBlendMode;
+ var curBlendMode:String = (interactionManager.activePosition == interactionManager.anchorPosition) ? selFormat.pointBlendMode : selFormat.rangeBlendMode;
+
+ if (textFlow.tlfFactory.getBlendMode(selectionSprite) != curBlendMode)
+ textFlow.tlfFactory.setBlendMode(selectionSprite,curBlendMode);
var curAlpha:Number = (interactionManager.activePosition == interactionManager.anchorPosition) ? selFormat.pointAlpha : selFormat.rangeAlpha;
if (selectionSprite.alpha != curAlpha)
@@ -4411,14 +4411,14 @@ package org.apache.flex.textLayout.container
*/
protected function addSelectionContainer(selectionContainer:IParentIUIBase):void
{
-//TODO deal with blendModes
// if (selectionContainer.blendMode == BlendMode.NORMAL && selectionContainer.alpha == 1)
-// {
+ if(textFlow.tlfFactory.getBlendMode(selectionContainer) == "normal")
+ {
// don't put selection behind background color or existing content in container, put it behind first text line
_container.addElementAt(selectionContainer, getFirstTextLineChildIndex());
-// }
-// else
-// _container.addElement(selectionContainer);
+ }
+ else
+ _container.addElement(selectionContainer);
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/conversion/PlainTextImporter.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/conversion/PlainTextImporter.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/conversion/PlainTextImporter.as
index b98c43d..f3ded70 100644
--- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/conversion/PlainTextImporter.as
+++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/conversion/PlainTextImporter.as
@@ -38,7 +38,7 @@ package org.apache.flex.textLayout.conversion {
* Newlines will be converted to paragraphs. Using the PlainTextImporter directly
* is equivalent to calling TextConverter.importToFlow(TextConverter.PLAIN_TEXT_FORMAT).
*/
- internal class PlainTextImporter extends ConverterBase implements ITextImporter
+ public class PlainTextImporter extends ConverterBase implements ITextImporter
{
protected var _config:IConfiguration = null;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/dummy/Clipboard.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/dummy/Clipboard.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/dummy/Clipboard.as
deleted file mode 100644
index ca0fed1..0000000
--- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/dummy/Clipboard.as
+++ /dev/null
@@ -1,36 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package org.apache.flex.textLayout.dummy {
- public class Clipboard {
- public static var generalClipboard : Clipboard;
-
- public function hasFormat(format : String) : Boolean {
- return false;
- }
-
- public function getData(clipboardFormat : String) : void {
- }
-
- public function clear() : void {
- }
-
- public function setData(clipboardFormat : String, clipboardData : String) : void {
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/Clipboard.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/Clipboard.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/Clipboard.as
new file mode 100644
index 0000000..c453aa8
--- /dev/null
+++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/Clipboard.as
@@ -0,0 +1,211 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.textLayout.edit
+{
+ COMPILE::SWF
+ {
+ import flash.desktop.Clipboard;
+ import org.apache.flex.utils.UIDUtil;
+ }
+ COMPILE::JS
+ {
+ import org.apache.flex.textLayout.events.EditEvent;
+ }
+ /**
+ * The Clipboard class is used for Clipboard operations such as copy and paste
+ * It wraps the Flash Clipboard class and creates a new one on the Javascript side.
+ * To use the Javascript version, it is necessary to assign a static `clipElement` which needs
+ * to be a `contenteditable` HTML Element. This is to work around Browser issues related to Copy and Paste.
+ *
+ */
+ COMPILE::SWF
+ public class Clipboard
+ {
+ public function get clipElement():Object
+ {
+ return null;
+ }
+ public function set clipElement(value:Object):void
+ {
+ // nothing for Flash
+ }
+ private static function get systemClipboard():flash.desktop.Clipboard
+ {
+ return flash.desktop.Clipboard.generalClipboard;
+ }
+ private static var _generalClipboard:org.apache.flex.textLayout.edit.Clipboard;
+ public static function get generalClipboard():org.apache.flex.textLayout.edit.Clipboard
+ {
+ if(_generalClipboard == null)
+ _generalClipboard = new org.apache.flex.textLayout.edit.Clipboard();
+ return _generalClipboard;
+ }
+ public function hasFormat(format:String):Boolean
+ {
+ return systemClipboard.hasFormat(format);
+ }
+
+ public function getData(clipboardFormat:String):Object
+ {
+ return systemClipboard.getData(clipboardFormat);
+ }
+
+ public function clear():void
+ {
+ systemClipboard.clear();
+ }
+
+ public function clearData(format:String):void
+ {
+ systemClipboard.clearData(format);
+ }
+
+ public function setData(clipboardFormat:String, clipboardData:String):void
+ {
+ systemClipboard.setData(clipboardFormat, clipboardData);
+ }
+
+ public function setDataHandler(format:String, handler:Function, serializable:Boolean = true):Boolean
+ {
+ return systemClipboard.setDataHandler(format, handler, serializable);
+ }
+ // Do nothing in Flash
+ public function registerCallback(callback:Function):void{}
+
+ }
+
+ COMPILE::JS
+ public class Clipboard
+ {
+
+ private var _clipElement:Object;
+ public function get clipElement():Object
+ {
+ return _clipElement;
+ }
+ public function set clipElement(value:Object):void
+ {
+ if(!_clipElement)
+ {
+ document["addEventListener"]('cut',onCut);
+ document["addEventListener"]('copy',onCopy);
+ document["addEventListener"]('paste',onPaste);
+
+ }
+ // if(_clipElement)
+ // {
+ // _clipElement["removeEventListener"]('cut',onCut);
+ // _clipElement["removeEventListener"]('copy',onCopy);
+ // _clipElement["removeEventListener"]('paste',onPaste);
+ // }
+ _clipElement = value;
+ // if(_clipElement)
+ // {
+ // _clipElement["addEventListener"]('cut',onCut);
+ // _clipElement["addEventListener"]('copy',onCopy);
+ // _clipElement["addEventListener"]('paste',onPaste);
+ // }
+ }
+ private var currentEvent:Object;
+ private function onCopy(e:Event):void
+ {
+ currentEvent = e;
+ if(_callback)
+ _callback(new Event(EditEvent.COPY));
+ // only call the callback once
+ _callback = null;
+ }
+ private function onCut(e:Event):void
+ {
+ currentEvent = e;
+ if(_callback)
+ _callback(new Event(EditEvent.CUT));
+ // only call the callback once
+ _callback = null;
+
+ }
+ private function onPaste(e:Event):void
+ {
+ currentEvent = e;
+
+ // check if the paste is outside content or TLF content
+ var pasteboardText:String;
+ if(window["clipboardData"]) {//IE
+ pasteboardText = window["clipboardData"].getData("Text");
+ } else if(currentEvent["clipboardData"]) {
+ pasteboardText = currentEvent["clipboardData"].getData("text/plain");
+ }
+ if(pasteboardText != getData("text/plain"))
+ {
+ clear();
+ setData("text/plain",pasteboardText);
+ }
+ if(_callback)
+ _callback(new Event(EditEvent.PASTE));
+ // only call the callback once
+ _callback = null;
+
+ }
+
+ private static var _generalClipboard:Clipboard;
+ public static function get generalClipboard():Clipboard{
+ if(_generalClipboard == null)
+ _generalClipboard = new Clipboard();
+
+ return _generalClipboard;
+ }
+ private var _formats:Object = {};
+ public function hasFormat(format:String):Boolean {
+ return _formats[format] != null;
+ }
+
+ public function getData(clipboardFormat:String):Object
+ {
+ return _formats[clipboardFormat];
+ }
+
+ public function clear() : void {
+ _formats = {};
+ }
+ public function setData(clipboardFormat:String, clipboardData:Object) : void {
+ _formats[clipboardFormat] = clipboardData;
+ if(clipboardFormat == "text/plain")
+ {
+ if(window["clipboardData"]) {//IE
+ window["clipboardData"].setData("Text", clipboardData);
+ } else if(currentEvent["clipboardData"]) {
+ currentEvent["clipboardData"].setData("text/plain", clipboardData);
+ }
+ }
+ }
+ public function preventDefault():void
+ {
+ if(currentEvent)
+ currentEvent.preventDefault();
+ }
+ private var _callback:Function;
+ // We need to register a callback to know what to do with the copy, cut and paste events
+ public function registerCallback(callback:Function):void
+ {
+ _callback = callback;
+ }
+
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/EditManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/EditManager.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/EditManager.as
index a0d7bde..062cbc0 100644
--- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/EditManager.as
+++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/EditManager.as
@@ -319,6 +319,26 @@ package org.apache.flex.textLayout.edit
deletePreviousWord();
event.preventDefault();
break;
+
+ }
+ //copy/paste
+ // in Flash there is special events for this.
+ COMPILE::JS
+ {
+ switch(event.code)
+ {
+ //Paste and cut need to be handled inside the "paste" and "cut" events
+ case "KeyV"://paste fallthrough
+ // editHandler(new Event(EditEvent.PASTE));
+ // event.preventDefault();
+ // break;
+ case "KeyX"://cut
+ Clipboard.generalClipboard.registerCallback(editHandler);
+ // editHandler(new Event(EditEvent.CUT));
+ // event.preventDefault();
+ break;
+ }
+
}
if (event.code == EditingKeys.DELETE)
{
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/SelectionManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/SelectionManager.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/SelectionManager.as
index 1860ac3..cbc693a 100644
--- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/SelectionManager.as
+++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/SelectionManager.as
@@ -43,7 +43,6 @@ package org.apache.flex.textLayout.edit
import org.apache.flex.textLayout.debug.assert;
import org.apache.flex.textLayout.dummy.BitmapData;
import org.apache.flex.textLayout.dummy.BoundsUtil;
- import org.apache.flex.textLayout.dummy.Clipboard;
import org.apache.flex.textLayout.dummy.ContextMenu;
import org.apache.flex.textLayout.dummy.IBitmapDrawable;
import org.apache.flex.textLayout.dummy.Mouse;
@@ -74,6 +73,7 @@ package org.apache.flex.textLayout.edit
import org.apache.flex.textLayout.operations.FlowOperation;
import org.apache.flex.textLayout.utils.NavigationUtil;
import org.apache.flex.utils.PointUtils;
+ import org.apache.flex.textLayout.edit.Clipboard;
/**
* The SelectionManager class manages text selection in a text flow.
@@ -2581,7 +2581,10 @@ package org.apache.flex.textLayout.edit
{
var selState:SelectionState = null;
flushPendingOperations();
+ if(event.defaultPrevented)
+ return;
+
switch (event.code)
{
case NavigationKeys.LEFT:
@@ -2634,6 +2637,29 @@ package org.apache.flex.textLayout.edit
if (!hasSelection() || event.defaultPrevented)
return;
+ //copy/paste
+ // in Flash there is special events for this.
+ COMPILE::JS
+ {
+ if(event.specialKey && !event.altKey && !event.defaultPrevented)
+ {
+ switch(event.code)
+ {
+ // Copy is handled internally by the Clipboard class
+ case "KeyC"://copy
+ Clipboard.generalClipboard.registerCallback(editHandler);
+ // editHandler(new Event(EditEvent.COPY));
+ // event.preventDefault();
+ break;
+ case "KeyA"://select all
+ editHandler(new Event(SelectionEvent.SELECT_ALL));
+ event.preventDefault();
+ break;
+ }
+ }
+
+ }
+
// if (event.charCode == 0)
// {
// the keycodes that we currently handle
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/TextClipboard.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/TextClipboard.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/TextClipboard.as
index 69d50b8..4c11c67 100644
--- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/TextClipboard.as
+++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/edit/TextClipboard.as
@@ -24,12 +24,14 @@ package org.apache.flex.textLayout.edit
import org.apache.flex.textLayout.conversion.ITextExporter;
import org.apache.flex.textLayout.conversion.ITextImporter;
import org.apache.flex.textLayout.conversion.TextConverter;
- import org.apache.flex.textLayout.dummy.Clipboard;
import org.apache.flex.textLayout.elements.FlowGroupElement;
import org.apache.flex.textLayout.elements.IFlowElement;
import org.apache.flex.textLayout.elements.ITextFlow;
-
+ COMPILE::JS
+ {
+ import org.apache.flex.textLayout.conversion.PlainTextImporter;
+ }
/**
@@ -74,7 +76,28 @@ package org.apache.flex.textLayout.edit
*/
public static function getContents():TextScrap
{
- var systemClipboard:Clipboard = Clipboard.generalClipboard;
+ var systemClipboard:Clipboard = Clipboard.generalClipboard;
+ COMPILE::SWF
+ {
+ return importScrap(getFromClipboard);
+ }
+
+ COMPILE::JS
+ {
+ systemClipboard.preventDefault();
+ if(systemClipboard.hasFormat(TextConverter.TEXT_LAYOUT_FORMAT))
+ return systemClipboard.getData(TextConverter.TEXT_LAYOUT_FORMAT) as TextScrap;
+ else
+ {
+ var importer:PlainTextImporter = new PlainTextImporter();
+ var flow:ITextFlow = importer.importToFlow(systemClipboard.getData("text/plain"));
+ var textScrap:TextScrap = new TextScrap(flow);
+ textScrap.setPlainText(true);
+ return textScrap;
+ }
+ }
+
+
return importScrap(getFromClipboard);
function getFromClipboard(clipboardFormat:String):String
@@ -134,7 +157,17 @@ package org.apache.flex.textLayout.edit
var systemClipboard:Clipboard = Clipboard.generalClipboard;
systemClipboard.clear();
- exportScrap(textScrap, addToClipboard);
+ COMPILE::SWF
+ {
+ exportScrap(textScrap, addToClipboard);
+ }
+
+ COMPILE::JS
+ {
+ systemClipboard.setData(TextConverter.TEXT_LAYOUT_FORMAT, textScrap);
+ systemClipboard.setData("text/plain", textScrap.textFlow.getText());
+ systemClipboard.preventDefault();
+ }
function addToClipboard(clipboardFormat:String, clipboardData:String):void
{
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/ITLFFactory.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/ITLFFactory.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/ITLFFactory.as
index d122879..627d03e 100644
--- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/ITLFFactory.as
+++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/ITLFFactory.as
@@ -34,5 +34,7 @@ package org.apache.flex.textLayout.factory {
// of the font information it needs
function get currentContainer():IParentIUIBase;
function set currentContainer(value:IParentIUIBase):void
+ function getBlendMode(obj:Object):String;
+ function setBlendMode(obj:Object,value:String):void;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/455f8802/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/StandardTLFFactory.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/StandardTLFFactory.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/StandardTLFFactory.as
index 0ed80f1..75202c6 100644
--- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/StandardTLFFactory.as
+++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/factory/StandardTLFFactory.as
@@ -57,5 +57,14 @@ package org.apache.flex.textLayout.factory {
{
_currentContainer = value;
}
+ public function getBlendMode(obj:Object):String
+ {
+ return "normal";
+ }
+
+ public function setBlendMode(obj:Object,value:String):void
+ {
+
+ }
}
}
\ No newline at end of file