PDA

View Full Version : Furni Viewer [flash/php]



dustyn
25-10-2010, 07:11 PM
heyho.
first: i'm sorry for my bad english, i'm from switzerland. anyway, i hope u'll understand me. lol

well, i tried to build a furni viewer like this one on habbotimes.

for an exampel, we take this furni: http://images.habbo.com/dcr/hof_furni/25824/rare_xmas_screen.swf

we see now, that the page is blank.
but how can i see the furni images? i'm not sure but i think it works with a xml file.
i tried to decode this file with showmycode.com
the result:

package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_64_b_2_0 extends BitmapAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_32_sd_2_0 extends BitmapAsset {

}
}//package
package mx.core {
import flash.display.*;
import mx.utils.*;

public class FlexBitmap extends Bitmap {

mx_internal static const VERSION:String = "3.0.0.0";

public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
var bitmapData = _arg1;
var pixelSnapping:String = _arg2;
var smoothing:Boolean = _arg3;
super(bitmapData, pixelSnapping, smoothing);
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}

}
}//package mx.core
package mx.core {

public interface IRepeaterClient {

function get instanceIndices():Array;
function set instanceIndices(_arg1:Array):void;
function get isDocument():Boolean;
function set repeaters(_arg1:Array):void;
function initializeRepeaterArrays(_arg1:IRepeaterClient):vo id;
function get repeaters():Array;
function set repeaterIndices(_arg1:Array):void;
function get repeaterIndices():Array;

}
}//package mx.core
package mx.core {
import flash.display.*;
import flash.geom.*;
import flash.accessibility.*;
import flash.events.*;

public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {

function get visible():Boolean;
function get rotation():Number;
function localToGlobal(_arg1:Point):Point;
function get name():String;
function set width(_arg1:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(_arg1:String):void;
function set scaleX(_arg1:Number):void;
function set scaleY(_arg1:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(_arg1:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(_arg1:Point):Point;
function get height():Number;
function set blendMode(_arg1:String):void;
function get parent():DisplayObjectContainer;
function getBounds(_arg1:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(_arg1:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(_arg1:Number):void;
function set accessibilityProperties(_arg1:AccessibilityPropert ies):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(_arg1:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(_arg1:Number):void;
function set mask(_arg1:DisplayObject):void;
function getRect(_arg1:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(_arg1:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(_arg1:DisplayObject):Boolean;
function set opaqueBackground(_arg1:Object):void;
function set visible(_arg1:Boolean):void;
function get mask():DisplayObject;
function set x(_arg1:Number):void;
function set y(_arg1:Number):void;
function get transform():Transform;
function set filters(_arg1:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(_arg1:Number):void;
function get stage():Stage;

}
}//package mx.core
package mx.core {
import flash.utils.*;

public class ByteArrayAsset extends ByteArray implements IFlexAsset {

mx_internal static const VERSION:String = "3.0.0.0";

}
}//package mx.core
package mx.core {

public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
package mx.core {
import flash.display.*;

public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {

mx_internal static const VERSION:String = "3.0.0.0";

public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}

}
}//package mx.core
package mx.core {

public interface IFlexAsset {

}
}//package mx.core
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;

public class NameUtil {

mx_internal static const VERSION:String = "3.0.0.0";

private static var counter:int = 0;

public static function displayObjectToString(_arg1:DisplayObject):String{
var _local2:String;
var _local4:String;
var _local5:Array;
var _local3:DisplayObject = _arg1;
while (_local3 != null) {
if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){
break;
};
_local4 = _local3.name;
if ((_local3 is IRepeaterClient)){
_local5 = IRepeaterClient(_local3).instanceIndices;
if (_local5){
_local4 = (_local4 + (("[" + _local5.join("][")) + "]"));
};
};
_local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2);
_local3 = _local3.parent;
};
return (_local2);
}
public static function createUniqueName(_arg1:Object):String{
if (!_arg1){
return (null);
};
var _local2:String = getQualifiedClassName(_arg1);
var _local3:int = _local2.indexOf("::");
if (_local3 != -1){
_local2 = _local2.substr((_local3 + 2));
};
var _local4:int = _local2.charCodeAt((_local2.length - 1));
if ((((_local4 >= 48)) && ((_local4 <= 57)))){
_local2 = (_local2 + "_");
};
return ((_local2 + counter++));
}

}
}//package mx.utils
package {
import mx.core.*;

public class rare_xmas_screen_manifest extends ByteArrayAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_64_d_2_0 extends BitmapAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_icon_a extends BitmapAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_index extends ByteArrayAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_64_a_2_0 extends BitmapAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_logic extends ByteArrayAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_assets extends ByteArrayAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_32_c_2_0 extends BitmapAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_32_d_2_0 extends BitmapAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_64_c_2_0 extends BitmapAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_32_b_2_0 extends BitmapAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_visualization extends ByteArrayAsset {

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_32_a_2_0 extends BitmapAsset {

}
}//package
package {
import flash.display.*;

public class rare_xmas_screen extends Sprite {

public static const rare_xmas_screen_logic:Class = rare_xmas_screen_rare_xmas_screen_logic;
public static const index:Class = rare_xmas_screen_index;
public static const rare_xmas_screen_visualization:Class = rare_xmas_screen_rare_xmas_screen_visualization;
public static const rare_xmas_screen_assets:Class = rare_xmas_screen_rare_xmas_screen_assets;
public static const manifest:Class = rare_xmas_screen_manifest;

public static var rare_xmas_screen_32_d_2_0:Class = rare_xmas_screen_rare_xmas_screen_32_d_2_0;
public static var rare_xmas_screen_32_sd_2_0:Class = rare_xmas_screen_rare_xmas_screen_32_sd_2_0;
public static var rare_xmas_screen_32_b_2_0:Class = rare_xmas_screen_rare_xmas_screen_32_b_2_0;
public static var rare_xmas_screen_64_a_2_0:Class = rare_xmas_screen_rare_xmas_screen_64_a_2_0;
public static var rare_xmas_screen_64_b_2_0:Class = rare_xmas_screen_rare_xmas_screen_64_b_2_0;
public static var rare_xmas_screen_64_c_2_0:Class = rare_xmas_screen_rare_xmas_screen_64_c_2_0;
public static var rare_xmas_screen_64_d_2_0:Class = rare_xmas_screen_rare_xmas_screen_64_d_2_0;
public static var rare_xmas_screen_icon_a:Class = rare_xmas_screen_rare_xmas_screen_icon_a;
public static var rare_xmas_screen_32_a_2_0:Class = rare_xmas_screen_rare_xmas_screen_32_a_2_0;
public static var rare_xmas_screen_64_sd_2_0:Class = rare_xmas_screen_rare_xmas_screen_64_sd_2_0;
public static var rare_xmas_screen_32_c_2_0:Class = rare_xmas_screen_rare_xmas_screen_32_c_2_0;

}
}//package
package {
import mx.core.*;

public class rare_xmas_screen_rare_xmas_screen_64_sd_2_0 extends BitmapAsset {

}
}//package

so the problem is that i have no idea about flash. i just work with php and js
and an other question: is it possible to grab the images using php?

kind regards,
dustyn

Dentafrice
25-10-2010, 08:19 PM
I don't think it's possible. The furni I do believe is individual pieces as resources in the SWF. Haven't used flash in forever so they're either movie clips or I guess symbols?

They are not just a raster image file such as a PNG... they are many images in various forms that are eventually combined together I'm pretty sure. Hence why colors can be changed on various furniture. The top of the furniture might be combined with the sides which may be different colors.

dustyn
26-10-2010, 11:52 AM
Yh, i think u're right but how did habbotimes this?
i'm pretty sure they work with .swf files.

Want to hide these adverts? Register an account for free!