/*
* Copyright 2011 Google Inc.
*
* Licensed 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 forplay.flash;
import forplay.core.Asserts;
import flash.display.Bitmap;
import flash.display.Sprite;
import forplay.core.ForPlay;
import forplay.core.ResourceCallback;
import forplay.core.Image;
import forplay.core.ImageLayer;
// TODO(pdr): fix setWidth, setHeight, setRepeat*, etc.
public class FlashImageLayer extends FlashLayer implements ImageLayer {
private final Image image;
/**
* @param image
*/
public FlashImageLayer(Image image) {
super((Sprite) (Bitmap.create(((FlashImage) image).bitmapData()).cast()));
this.image = image;
image.addCallback(new ResourceCallback<Image>() {
@Override
public void error(Throwable err) {
ForPlay.log().error(err.toString());
}
@Override
public void done(Image resource) {
((Bitmap) display().cast()).setBitmapData(((FlashImage) resource).bitmapData());
}
});
}
/**
*
*/
public FlashImageLayer() {
super(Bitmap.create(null));
image = null;
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#clearHeight()
*/
@Override
public void clearHeight() {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#clearSourceRect()
*/
@Override
public void clearSourceRect() {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#clearWidth()
*/
@Override
public void clearWidth() {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#image()
*/
@Override
public Image image() {
// TODO Auto-generated method stub
return image;
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#setHeight(float)
*/
@Override
public void setHeight(float height) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#setImage(forplay.core.Image)
*/
@Override
public void setImage(Image image) {
((Bitmap) display().cast()).setBitmapData(((FlashImage) image).bitmapData());
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#setRepeatX(boolean)
*/
@Override
public void setRepeatX(boolean repeat) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#setRepeatY(boolean)
*/
@Override
public void setRepeatY(boolean repeat) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#setSourceRect(float, float, float, float)
*/
@Override
public void setSourceRect(float sx, float sy, float sw, float sh) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#setWidth(float)
*/
@Override
public void setWidth(float width) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see forplay.core.ImageLayer#setSize(float, float)
*/
@Override
public void setSize(float width, float height) {
// TODO Auto-generated method stub
}
@Override
public float width() {
Asserts.checkNotNull(image, "Image must not be null");
return image.width();
}
@Override
public float height() {
Asserts.checkNotNull(image, "Image must not be null");
return image.height();
}
@Override
public float scaledWidth() {
return transform().scaleX() * width();
}
@Override
public float scaledHeight() {
return transform().scaleY() * height();
}
}